O método __contains__ em Python

Hemank Mehtani 19 outubro 2021
O método __contains__ em Python

Python __contains__ é um método da classe String em Python. Ele pode verificar se uma determinada substring faz parte de uma string ou não.

É um método mágico. Esses métodos não devem ser chamados explicitamente e são chamados como parte de outras operações embutidas. Neste caso, o método __contains__ está associado ao operador in.

A função __contains__ define como as instâncias se comportam no lado direito do operador in - o operador in verifica se um determinado valor está presente em uma sequência ou não.

Por exemplo,

str1 = "Delftstack"
str2 = "Del"

val = str1.__contains__(str2)
print(val)

Produção:

True

No exemplo acima, verificamos se uma determinada substring está presente em uma string ou não usando o método __contains__.

Os métodos mágicos são invocados internamente na aula. Podemos usar o método __contains__ em uma classe, que o invocará para realizar alguma ação.

Podemos sobrecarregá-lo para retornar algum outro valor quando associado a uma classe.

Por exemplo,

class abc(object):

    name = "Delftstack"

    def __contains__(self, m):
        if self.name:
            return False


b = abc()
print("stack" in b)

Produção:

False

No exemplo acima, fazemos com que o método __contains__ retorne False se uma substring estiver em uma string. Como é invocado quando o operador in é usado, a saída final é False, mesmo quando a string stack está presente em Delftstack.