我有'__contains__',为什么错误

zjm*_*126 1 python

class a(object):
    def a(self):
        return True
    __contains__=a

b=a()
print 2 in b#why error
Run Code Online (Sandbox Code Playgroud)

Bri*_*nna 7

__contains__ is meant to take an argument. a doesn't accept an argument.

The following is your example with a working __contains__:

>>> class a(object):
...     def a(self, item):
...         return True
...     __contains__=a
...
>>> b=a()
>>> print 2 in b
True
Run Code Online (Sandbox Code Playgroud)