Substituir o operador 'in' do Python?




python with django pdf (3)

Se estou criando minha própria classe em Python, que função devo definir para permitir o uso do operador 'in', por exemplo:

class MyClass(object):
    ...

m = MyClass()

if 54 in m:
    ...

Uma resposta mais completa é:

class MyClass(object):

    def __init__(self):
        self.numbers = [1,2,3,4,54]

    def __contains__(self, key):
        return key in self.numbers

Aqui você teria True quando perguntando se 54 estava em m:

>>> m = MyClass()
>>> 54 in m
True  

Veja a documentação sobre sobrecarga __contains__ .







in-operator