La méthode __contains__ en Python

Hemank Mehtani 10 octobre 2023
La méthode __contains__ en Python

Python __contains__ est une méthode de la classe String en Python. Il peut vérifier si une sous-chaîne donnée fait partie d’une chaîne ou non.

C’est une méthode magique. De telles méthodes ne sont pas censées être appelées explicitement et sont appelées dans le cadre d’autres opérations intégrées. Dans ce cas, la méthode __contains__ est associée à l’opérateur in.

La fonction __contains__ définit comment les instances se comportent à droite de l’opérateur in - l’opérateur in vérifie si une valeur donnée est présente ou non dans une séquence.

Par exemple,

str1 = "Delftstack"
str2 = "Del"

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

Production:

True

Dans l’exemple ci-dessus, nous avons vérifié si une sous-chaîne donnée est présente ou non dans une chaîne en utilisant la méthode __contains__.

Les méthodes magiques sont invoquées en interne dans la classe. Nous pouvons utiliser la méthode __contains__ dans une classe, qui l’invoquera pour effectuer une action.

Nous pouvons le surcharger pour renvoyer une autre valeur lorsqu’il est associé à une classe.

Par exemple,

class abc(object):

    name = "Delftstack"

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


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

Production:

False

Dans l’exemple ci-dessus, nous faisons en sorte que la méthode __contains__ renvoie False si une sous-chaîne est dans une chaîne. Comme il est invoqué lorsque l’opérateur in est utilisé, la sortie finale est False même lorsque la chaîne stack est présente dans Delftstack.