2016-09-21 56 views
1

如何在我定义的类中为运算符[]使用__getitem__的前提下重载运算符in如何重载operator 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 

回答

0

没有必要的,如果你尝试:

"second" in ["first", "second"] 

它会返回True就像你想