class a(object):
def a(self):
return True
__contains__=a
b=a()
print 2 in b#why error
__contains__
предназначен для принятия аргумента. a
не принимает аргумент.
Ниже приведен ваш пример с рабочим __contains__
:
>>> class a(object):
... def a(self, item):
... return True
... __contains__=a
...
>>> b=a()
>>> print 2 in b
True
Подпись __contains__
:
object.__contains__(self, item)
согласно документации. Вам необходимо расширить свой метод "a":
def a(self, item)
class a(object):
def a(self, item):
return True
__contains__=a
=
в присваиваниях (хотя не обязательно в аргументах функций) и перед комментариями. Код выглядит как-то смешанный.