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
Danach Zuweisung, die Werte von x und y sind:
>>> x 2 >>> y 3
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
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
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!