у меня есть «__contains__», почему ошибка - PullRequest
1 голос
/ 12 января 2010
class a(object):
    def a(self):
        return True
    __contains__=a

b=a()
print 2 in b#why error

Ответы [ 2 ]

7 голосов
/ 12 января 2010

__contains__ предназначен для аргумента. a не принимает аргумент.

Ниже приведен пример с рабочим __contains__:

>>> class a(object):
...     def a(self, item):
...         return True
...     __contains__=a
...
>>> b=a()
>>> print 2 in b
True
3 голосов
/ 12 января 2010

Подпись __contains__:

object.__contains__(self, item)

согласно документации . Вам необходимо расширить ваш метод "a":

def a(self, item)

class a(object):
    def a(self, item):
        return True
    __contains__=a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...