1
class a(object):
def a(self):
return True
__contains__=a
b=a()
print 2 in b#why error
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)
按documentation。您需要延长您的“一”的方法:
def a(self, item)
class a(object):
def a(self, item):
return True
__contains__=a
请:当你得到一个错误,包括问题的错误。 – 2010-01-12 02:58:31
另外,最好的做法是在分配中包含'='符号周围的空格(尽管不一定在函数参数中),并且在注释之前。代码看起来有点卡在一起。 – LeafStorm 2010-01-12 12:22:18