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
.