Вы можете сделать это так:
class Kid:
def __init__(self, name):
self.name = name
def is_cool(kid):
cool_kids = {"Jim", "Bill", "Nebuchadnezzar II"}
return kid.name in cool_kids
print(is_cool(Kid("Daniel")))
print(is_cool(Kid("Jim")))
выход
False
True
В вашем коде есть несколько проблем, вам нужно удалить скобки из определения класса Kid
и изменить метод __init
на __init__
, передав self
в качестве первого параметра.
UPDATE
Если вы хотите наследовать от str, вы можете сделать это следующим образом:
class Kid(str):
def __new__(cls, *args, **kw):
return str.__new__(cls, *args, **kw)
def is_cool(kid):
cool_kids = {"Jim", "Bill", "Nebuchadnezzar II"}
return kid in cool_kids
print(is_cool(Kid("Daniel")))
print(is_cool(Kid("Jim")))
выход
False
True
Подробнее о наследовании от str можно узнать здесь