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
.