El método __contains__ en Python

Hemank Mehtani 10 octubre 2023
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.