Multiple Assignment Mystery in Python
In Python können Zuweisungen auf eine Weise ausgewertet werden, die möglicherweise nicht sofort offensichtlich ist. Ein solcher Fall ist die Mehrfachzuweisung, bei der zwei oder mehr Variablen gleichzeitig Werte zugewiesen werden.
Bedenken Sie Folgendes:
>>> x = 1 >>> y = 2
Nun versuchen wir, beide Werte gleichzeitig zuzuweisen:
>>> x, y = y, x + y >>> x 2 >>> y 3
Unerwarteterweise führt dies zu anderen Ergebnissen als bei der Zuweisung der Werte separat:
>>> x = 1 >>> y = 2 >>> x = y >>> y = x + y >>> x 2 >>> y 4
Erklärung
Der Schlüssel zum Verständnis dieses Verhaltens liegt in der Reihenfolge der Bewertung in einer Zuweisungsanweisung. In Python wird die rechte Seite einer Zuweisung immer vollständig ausgewertet, bevor Variablen tatsächlich gesetzt werden.
Im ersten Fall „x, y = y, x y“ wird die rechte Seite als ausgewertet folgt:
Die Variablen werden dann auf diese Werte gesetzt: x wird Ham zugewiesen und y wird Spam zugewiesen.
Im zweiten Fall hingegen gilt „x = y; y = x y“, die Zuweisungen erfolgen nacheinander: x wird auf y gesetzt, und dann wird y auf x y gesetzt, was äquivalent zu y ist y.
Daher verhält sich die Mehrfachzuweisung im ersten Fall anders, da die Werte gleichzeitig ausgewertet und gesetzt werden. Wenn Sie getrennte Aufgaben ausführen möchten, sollten Sie den letzteren, sequenziellen Ansatz verwenden.
Das obige ist der detaillierte Inhalt vonWie unterscheidet sich die Mehrfachzuweisung von Python von der sequentiellen Zuweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!