如果我正在用Python创建自己的类,我应该定义什么函数才能允许使用in操作符,例如
in
class MyClass(object): ... m = MyClass() if 54 in m: ...
xwbd5t1u1#
第一个月
1zmg4dgp2#
更完整的答案是:
class MyClass(object): def __init__(self): self.numbers = [1,2,3,4,54] def __contains__(self, key): return key in self.numbers
在这里,当你问54是否在m中时,你会得到True:
m
True
>>> m = MyClass() >>> 54 in m True
请参见有关重载__contains__的文档。
__contains__
bfhwhh0e3#
另一种获得所需逻辑的方法是实现__iter__。如果你不重载__contains__,python会使用__iter__(如果它被重载了)来检查你的数据结构是否包含指定的值。
__iter__
3条答案
按热度按时间xwbd5t1u1#
第一个月
1zmg4dgp2#
更完整的答案是:
在这里,当你问54是否在
m
中时,你会得到True
:请参见有关重载
__contains__
的文档。bfhwhh0e3#
另一种获得所需逻辑的方法是实现
__iter__
。如果你不重载
__contains__
,python会使用__iter__
(如果它被重载了)来检查你的数据结构是否包含指定的值。