ast*_*rog 177 python operator-overloading operators in-operator
如果我在Python中创建自己的类,我应该定义什么函数以允许使用'in'运算符,例如
class MyClass(object):
...
m = MyClass()
if 54 in m:
...
Run Code Online (Sandbox Code Playgroud)
pth*_*lin 177
更完整的答案是:
class MyClass(object):
def __init__(self):
self.numbers = [1,2,3,4,54]
def __contains__(self, key):
return key in self.numbers
Run Code Online (Sandbox Code Playgroud)
在询问54是否在m时,你会得到True:
>>> m = MyClass()
>>> 54 in m
True
Run Code Online (Sandbox Code Playgroud)