Maison >développement back-end >Tutoriel Python >Quand les opérateurs `is` et `==` renvoient-ils des résultats différents en Python ?
Comprendre l'opérateur « est »
Malgré les mêmes valeurs, lors de l'utilisation de l'opérateur « est », une idée fausse courante est de supposer il compare les valeurs des variables. Cependant, cet opérateur évalue en réalité si deux variables font référence au même objet.
Dans votre exemple, le code suivant :
x = [1, 2, 3] y = [1, 2, 3]
peut vous amener à vous attendre à ce que l'opérateur "is" renvoie Vrai, mais cela renvoie Faux :
print(x is y) # False
En effet, x et y, bien qu'ils partagent les mêmes valeurs, sont considérés comme deux listes distinctes. Ce sont des objets différents, comme le révèlent leurs identifiants uniques :
print(id(x)) print(id(y)) # Different identifiers indicate different objects
Pour comparer les valeurs, utilisez plutôt l'opérateur "==" :
print(x == y) # True for equal values
La modification d'une des listes ne sera pas affecter l'autre, confirmant qu'il s'agit d'objets distincts :
x[0] = 4 print(y) # [1, 2, 3] (Unchanged)
Attribuer y à x crée une nouvelle référence pointant vers la même liste object :
x = y print(id(x)) print(id(y)) # Same identifiers after assignment print(x is y) # True (Same object)
N'oubliez pas que l'opérateur "is" teste l'identité de l'objet, tandis que l'opérateur "==" compare les valeurs. Utilisez-les judicieusement pour éviter toute confusion potentielle dans la compréhension du comportement de référencement des variables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!