Heim > Backend-Entwicklung > Python-Tutorial > Wie unterscheidet sich die Mehrfachzuweisung von Python von der sequentiellen Zuweisung?

Wie unterscheidet sich die Mehrfachzuweisung von Python von der sequentiellen Zuweisung?

DDD
Freigeben: 2024-12-05 02:26:09
Original
321 Leute haben es durchsucht

How Does Python's Multiple Assignment Differ from Sequential Assignment?

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

Nun versuchen wir, beide Werte gleichzeitig zuzuweisen:

>>> x, y = y, x + y
>>> x
2
>>> y
3
Nach dem Login kopieren

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

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:

  • y wird zu ham ausgewertet.
  • x y wird zu ausgewertet Spam.

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage