Ответы:
Более полный ответ:
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
Смотрите документацию по перегрузке__contains__
.
Возможно, вы также захотите взглянуть на инфраструктуру переопределения инфиксных операторов, которую я смог использовать для создания языка для конкретного домена:
is
иis not
оператор. Какquery = tinydb.Query().field == value
, чтобы также иметь возможность писатьQuery().field is not None
. Но, кажется, я остался на время__eq__
и на__ne__
какое-то время, что ведет к непифонииQuery().field != None
. (сарка)