Переопределить оператор Python 'in'?
Если я создаю свой собственный класс в Python, какую функцию я должен определить, чтобы разрешить использование оператора "in", например
class MyClass(object):
...
m = MyClass()
if 54 in m:
...
Ответы
Ответ 2
Более полный ответ:
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:
>>> m = MyClass()
>>> 54 in m
True
Ответ 3
Вы также можете взглянуть на структуру переопределения оператора infix, которую я смог использовать для создания языка, специфичного для домена: