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