class a(object): def a(self): return True __contains__=a b=a() print 2 in b#why error
__contains__ предназначен для аргумента. a не принимает аргумент.
__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