2016-09-21 4 views
1

Как я могу перегрузить оператора in на том основании, что я использовал __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 

ответ

0

Нет необходимости в том, что, если вы пытаетесь:

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

он собирается вернуться Правда так же, как вы хотите