Maison > développement back-end > Tutoriel Python > Comment les affectations multiples de Python affectent-elles l'ordre d'évaluation des variables ?

Comment les affectations multiples de Python affectent-elles l'ordre d'évaluation des variables ?

Susan Sarandon
Libérer: 2024-12-16 14:43:10
original
616 Les gens l'ont consulté

How Does Python's Multiple Assignment Affect Variable Evaluation Order?

Assignation multiple et ordre d'évaluation en Python

En Python, les affectations multiples sont une pratique courante, où plusieurs variables se voient attribuer des valeurs simultanément. Cependant, l'ordre d'évaluation dans de telles missions peut avoir des conséquences inattendues.

Le problème

Considérez le code suivant :

>>> x = 1
>>> y = 2
>>> x, y = y, x + y  # Multiple assignment
Copier après la connexion

Après cela affectation, les valeurs de x et y sont :

>>> x
2
>>> y
3
Copier après la connexion

Cela diffère de ce à quoi on pourrait s'attendre si les affectations étaient effectuées séparément :

>>> x = 1
>>> y = 2
>>> x = y  # Assign x to the current value of y
>>> y = x + y  # Assign y to the sum of x and y
>>> x
2
>>> y
4
Copier après la connexion

L'explication

La différence est due à l'ordre d'évaluation dans les énoncés de mission. En Python, le côté droit d'une affectation est évalué en premier, avant que l'affectation réelle aux variables n'ait lieu.

Dans le premier exemple, lorsque nous attribuons x, y = y, x y, le côté droit- Le côté main est évalué comme suit :

ham = y  # Where ham = 2
spam = x + y  # Where spam = 1 + 2 = 3
Copier après la connexion

Ensuite, x se voit attribuer la valeur de ham (2) et y reçoit la valeur de spam (3). C'est pourquoi nous obtenons le résultat x = 2 et y = 3.

En revanche, dans le deuxième exemple, x se voit d'abord attribuer la valeur de y, qui est 2. Ensuite, y se voit attribuer la somme de x (2) et y (2), ce qui donne 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!

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