Maison > développement back-end > Tutoriel Python > Pourquoi les affectations multiples en Python (x, y = y, x y) diffèrent-elles des affectations séparées (x = y ; y = x y) ?

Pourquoi les affectations multiples en Python (x, y = y, x y) diffèrent-elles des affectations séparées (x = y ; y = x y) ?

Susan Sarandon
Libérer: 2024-12-15 17:52:10
original
918 Les gens l'ont consulté

Why Does Multiple Assignment in Python (x, y = y, x y) Differ from Separate Assignments (x = y; y = x y)?

Assignation multiple et ordre d'évaluation en Python

En Python, lors de l'utilisation d'affectations multiples, telles que x, y = y, x y, c'est impératif de comprendre l’ordre sous-jacent de évaluation.

Question :

Lors de l'attribution de plusieurs valeurs à la fois, pourquoi x, y = y, x y entraînent-ils des valeurs différentes que de les attribuer séparément, c'est-à-dire x = oui ; y = x y?

Réponse :

En Python, le côté droit d'une instruction d'affectation est entièrement évalué avant qu'un réglage de variable ne se produise. Cela implique que dans x, y = y, x y, les étapes suivantes ont lieu :

  1. y est évalué et stocké comme jambon.
  2. x y est évalué et stocké comme spam.
  3. x est réglé sur ham.
  4. y est réglé sur spam.

Effectivement, cela équivaut à :

ham = y
spam = x + y
x = ham
y = spam
Copier après la connexion

Par contre, en x = y ; y = x y, les étapes sont :

  1. y est défini sur x.
  2. x y est évalué comme y y et défini sur y.

Ce résultat dans x étant défini sur la valeur d'origine de y, et y étant défini sur la somme des valeurs d'origine de x et y.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal