El método __contains__ en Python
Python __contains__
es un método de la clase String en Python. Puede comprobar si una subcadena determinada es parte de una cadena o no.
Es un método mágico. Dichos métodos no deben llamarse explícitamente y se llaman como parte de otras operaciones incorporadas. En este caso, el método __contains__
está asociado con el operador in
.
La función __contains__
define cómo se comportan las instancias en el lado derecho del operador in
- el operador in
comprueba si un valor dado está presente en una secuencia o no.
Por ejemplo,
str1 = "Delftstack"
str2 = "Del"
val = str1.__contains__(str2)
print(val)
Producción :
True
En el ejemplo anterior, verificamos si una subcadena dada está presente en una cadena o no usando el método __contains__
.
Los métodos mágicos se invocan internamente en clase. Podemos usar el método __contains__
en una clase, que lo invocará para realizar alguna acción.
Podemos sobrecargarlo para devolver algún otro valor cuando se asocia con una clase.
Por ejemplo,
class abc(object):
name = "Delftstack"
def __contains__(self, m):
if self.name:
return False
b = abc()
print("stack" in b)
Producción :
False
En el ejemplo anterior, hacemos que el método __contains__
devuelva False si una subcadena está en una cadena. Dado que se invoca cuando se utiliza el operador in
, la salida final es False incluso cuando la cadena stack
está presente en Delftstack
.