class a(object):
def a(self):
return True
__contains__=a
b=a()
print 2 in b#why error
答案 0 :(得分:7)
__contains__
是为了争论。 a
不接受论证。
以下是有效__contains__
的示例:
>>> class a(object):
... def a(self, item):
... return True
... __contains__=a
...
>>> b=a()
>>> print 2 in b
True
答案 1 :(得分:3)
__contains__
的签名是:
object.__contains__(self, item)
根据documentation。你需要扩展你的“a”方法:
def a(self, item)
class a(object):
def a(self, item):
return True
__contains__=a