Heim > Backend-Entwicklung > Python-Tutorial > Wie wirkt sich die Mehrfachzuweisung von Python auf die Reihenfolge der Variablenauswertung aus?

Wie wirkt sich die Mehrfachzuweisung von Python auf die Reihenfolge der Variablenauswertung aus?

Susan Sarandon
Freigeben: 2024-12-16 14:43:10
Original
616 Leute haben es durchsucht

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

Mehrfachzuweisungs- und Auswertungsreihenfolge in Python

In Python sind Mehrfachzuweisungen eine gängige Praxis, bei der mehreren Variablen gleichzeitig Werte zugewiesen werden. Allerdings kann die Reihenfolge der Auswertung bei solchen Aufgaben unerwartete Konsequenzen haben.

Das Problem

Bedenken Sie den folgenden Code:

>>> x = 1
>>> y = 2
>>> x, y = y, x + y  # Multiple assignment
Nach dem Login kopieren

Danach Zuweisung, die Werte von x und y sind:

>>> x
2
>>> y
3
Nach dem Login kopieren

Dies unterscheidet sich von dem, was man erwarten könnte, wenn die Zuweisungen erledigt wären separat:

>>> 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
Nach dem Login kopieren

Die Erklärung

Der Unterschied ergibt sich aus der Reihenfolge der Auswertung in Zuordnungsanweisungen. In Python wird zuerst die rechte Seite einer Zuweisung ausgewertet, bevor die eigentliche Zuweisung zu den Variablen erfolgt.

Im ersten Beispiel, wenn wir x, y = y, x y zuweisen, ist die rechte Seite Die Handseite wird wie folgt ausgewertet:

ham = y  # Where ham = 2
spam = x + y  # Where spam = 1 + 2 = 3
Nach dem Login kopieren

Dann wird x der Wert von Ham (2) und y der Wert von Spam (3) zugewiesen. Aus diesem Grund erhalten wir das Ergebnis x = 2 und y = 3.

Im Gegensatz dazu wird im zweiten Beispiel x zunächst der Wert von y zugewiesen, der 2 ist. Anschließend wird y die Summe von zugewiesen x (2) und y (2), was 4 ergibt.

Das obige ist der detaillierte Inhalt vonWie wirkt sich die Mehrfachzuweisung von Python auf die Reihenfolge der Variablenauswertung aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage