Если я создаю свой собственный класс в Python, что функция должна я определять, чтобы позволить использование 'в' операторе, например.
class MyClass(object):
...
m = MyClass()
if 54 in m:
...
Более полный ответ:
class MyClass(object):
def __init__(self):
self.numbers = [1,2,3,4,54]
def __contains__(self, key):
return key in self.numbers
Здесь вы получите True, если спросите, было ли 54 в м:
>>> m = MyClass()
>>> 54 in m
True
Вы также можете взглянуть на структуру переопределения инфиксного оператора, которую я смог использовать для создания предметно-ориентированного языка: