Différence de comportement entre list.__iadd__ et list.__add__
Considérez l'extrait suivant :
<code class="python">x = y = [1, 2, 3, 4] x += [4] print(x) # Outputs: [1, 2, 3, 4, 4] print(y) # Outputs: [1, 2, 3, 4, 4]</code>
En revanche , observez ceci :
<code class="python">x = y = [1, 2, 3, 4] x = x + [4] print(x) # Outputs: [1, 2, 3, 4, 4] print(y) # Outputs: [1, 2, 3, 4]</code>
Pourquoi ces deux extraits de code se comportent-ils différemment ?
Explication
La principale différence réside dans l'utilisation du Opérateur " ". Dans le premier extrait :
x = [4] utilise la méthode __iadd__ de la classe list, qui :
Cela entraîne la modification de x et y pour inclure la valeur 4.
Dans le deuxième extrait, cependant, x = x [4] utilise la méthode __add__ :
X a donc la valeur [1, 2 , 3, 4, 4] tandis que y contient toujours la valeur d'origine [1, 2, 3, 4].
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!