Heim  >  Artikel  >  Backend-Entwicklung  >  Wie funktionieren verkettete Zuweisungen in Python?

Wie funktionieren verkettete Zuweisungen in Python?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 09:38:02862Durchsuche

 How do Chained Assignments Work in Python?

Verkettete Zuweisungen in Python

In Python sind verkettete Zuweisungen mit der Syntax x = y = somefunction() äquivalent zu y = somefunction( ); x = y. Dies bedeutet, dass der von der Funktion zurückgegebene Wert zuerst dem Ziel ganz links zugewiesen wird und dann derselbe Wert den nachfolgenden Zielen zugewiesen wird.

Ein häufiges Missverständnis besteht jedoch darin, dass verkettete Zuweisungen wie x = y = somefunction() sind äquivalent zu x = somefunction(); y = somefunction(). Dies ist nicht der Fall.

Auswertung von links nach rechts

Der Schlüssel zum Verständnis verketteter Zuweisungen besteht darin, sich daran zu erinnern, dass Python Ausdrücke und Anweisungen von links nach rechts auswertet. Das bedeutet, dass im Ausdruck x = y = somefunction() die folgenden Schritte ablaufen:

  1. somefunction() wird ausgewertet und das Ergebnis wird in einer temporären Variablen (nennen wir es temp) gespeichert.
  2. x wird der Wert von temp zugewiesen.
  3. y wird auch der Wert von temp zugewiesen.

Daher beziehen sich x und y letztendlich auf die dasselbe Objekt.

Implikationen

Diese Bewertung von links nach rechts kann wichtige Implikationen haben. Wenn beispielsweise somefunction() ein veränderliches Objekt wie eine Liste zurückgibt, wirkt sich die Zuweisung zu einem der Ziele auf alle anderen Ziele aus, die auf dasselbe Objekt verweisen.

Beispiel:

Betrachten Sie den folgenden Code:

<code class="python">x = y = []
x.append(1)
print(x, y)</code>

Die Ausgabe des obigen Codes ist [1, 1], da x und y auf dasselbe Listenobjekt verweisen. Alle an einem der Ziele vorgenommenen Änderungen werden in den anderen Zielen widergespiegelt.

Fazit

Verkettete Zuweisungen in Python werden von links nach rechts ausgewertet, was zum gleichen Ergebnis führt Objekt wird allen Zielen zugewiesen. Dies kann wichtige Auswirkungen auf den Umgang mit veränderlichen Objekten haben, da sich Änderungen an einem Ziel auf alle Verweise auf dasselbe Objekt auswirken können.

Das obige ist der detaillierte Inhalt vonWie funktionieren verkettete Zuweisungen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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