Maison >développement back-end >Tutoriel Python >Voici quelques titres basés sur des questions qui capturent l'essence de l'article fourni : * Affectations chaînées en Python : pourquoi `x = y = somefunction()` fonctionne-t-il comme ça ? * Comment Python gère-t-il Chai
Les devoirs chaînés, tels que x = y = somefunction(), peuvent prêter à confusion en raison de leur écart par rapport à l'ordre d'évaluation attendu . Contrairement à l'hypothèse selon laquelle x = somefunction() et y = somefunction() sont exécutés dans l'ordre, les affectations enchaînées suivent un modèle différent.
Dans une affectation chaînée, la variable cible la plus à gauche est affectée en premier. Cela signifie que le code suivant :
<code class="python">x = y = somefunction()</code>
est équivalent à :
<code class="python">temp = somefunction() x = temp y = temp</code>
Comme vous pouvez le constater, la valeur renvoyée par somefunction() est d'abord stockée dans une variable temporaire (temp ), puis attribué à x et y.
Il est crucial de noter que dans les affectations chaînées, le même objet est toujours attribué à chaque cible. Cela peut entraîner des conséquences inattendues lorsqu'il s'agit d'objets mutables tels que des listes. Par exemple, le code suivant :
<code class="python">x = y = []</code>
attribue le même objet de liste à x et y. Cela signifie que toute modification apportée à x sera également reflétée dans y.
Pour éviter ce problème, créez toujours des objets distincts pour les variables mutables, comme le montre l'exemple correct suivant :
<code class="python">x = [] y = []</code>
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!