【发布时间】:2017-01-29 01:51:47
【问题描述】:
在我定义的类中使用__getitem__作为运算符[]的前提下,如何重载运算符in?
class myClass:
def __init__(self):
self.slots = [None]*5
def __setitem__(self, key, data):
self.set(key, data)
def __getitem__(self,key):
return self.get(key)
def set(self, key, data):
self.slots[key]=data
def get(self,key):
return self.slots[key]
s=myClass()
s[0]='first'
s[1]='second'
print(s[0])#<-------first
print(s.slots)#<----['first', 'second', None, None, None]
我怎样才能像这样用in 实现这个功能?
print(('second' in s))#<----True
print(('third' in s))#<-----False
【问题讨论】:
标签: python python-3.x operator-overloading operators grammar