Maison > Article > développement back-end > Comment fonctionnent les affectations chaînées en Python ?
Assignations chaînées en Python
En Python, les affectations chaînées utilisant la syntaxe x = y = somefunction() sont équivalentes à y = somefunction( ); x = y. Cela signifie que la valeur renvoyée par la fonction est d'abord attribuée à la cible la plus à gauche, puis la même valeur est attribuée aux cibles suivantes.
Cependant, une idée fausse courante est que les affectations enchaînées telles que x = y = somefunction() sont équivalents à x = somefunction(); y = une fonction(). Ce n'est pas le cas.
Évaluation de gauche à droite
La clé pour comprendre les affectations enchaînées est de se rappeler que Python évalue les expressions et les instructions de gauche à droite. Cela signifie que dans l'expression x = y = somefunction(), les étapes suivantes se produisent :
En conséquence, x et y finissent par faire référence au même objet.
Implications
Cette évaluation de gauche à droite peut avoir des implications importantes. Par exemple, si somefunction() renvoie un objet mutable tel qu'une liste, l'attribution à l'une des cibles affectera toutes les autres cibles qui font référence au même objet.
Exemple :
Considérez le code suivant :
<code class="python">x = y = [] x.append(1) print(x, y)</code>
La sortie du code ci-dessus sera [1, 1] car x et y font référence au même objet de liste. Toute modification apportée à l'une des cibles sera reflétée dans les autres cibles.
Conclusion
Les affectations chaînées en Python sont évaluées de gauche à droite, ce qui donne le même objet étant affecté à toutes les cibles. Cela peut avoir des implications importantes lorsqu'il s'agit d'objets mutables, car les modifications apportées à une cible peuvent affecter toutes les références au même objet.
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!