Wie funktionieren verkettete Zuweisungen in Python und welche potenziellen Fallstricke gibt es beim Umgang mit veränderlichen Objekten?

Linda Hamilton
Freigeben: 2024-10-27 10:10:03
Original
929 Leute haben es durchsucht

How do chained assignments work in Python, and what are the potential pitfalls when dealing with mutable objects?

Wie funktionieren verkettete Zuweisungen?

Eine verkettete Zuweisung in Python, wie zum Beispiel:

x = y = somefunction()
Nach dem Login kopieren

ist äquivalent zu den folgenden zwei Anweisungen, die nacheinander ausgeführt werden:

temp = somefunction()
x = temp
y = temp
Nach dem Login kopieren

Dies bedeutet, dass der Ausdruck auf der rechten Seite des Zuweisungsoperators zuerst ausgewertet wird und der resultierende Wert dann allen zugewiesen wird Variablen auf der linken Seite, von links nach rechts.

Zum Beispiel gibt der folgende Code die Zahl 10 zweimal aus:

def somefunction():
    return 10

x = y = somefunction()
print(x)
print(y)
Nach dem Login kopieren

Es ist wichtig zu beachten, dass verkettete Zuweisungen möglich sind problematisch beim Umgang mit veränderlichen Objekten wie Listen. Der folgende Code weist beispielsweise x und y dieselbe leere Liste zu:

x = y = []

x.append(1)

print(x)
print(y)
Nach dem Login kopieren

Dies gibt [1, 1] aus, da sowohl x als auch y auf dieselbe Liste verweisen. Wenn Sie zwei separate Listen erstellen möchten, sollten Sie stattdessen Folgendes schreiben:

x = []
y = []

x.append(1)

print(x)
print(y)
Nach dem Login kopieren

Dadurch werden [1] und [] gedruckt, da x und y auf unterschiedliche Listen verweisen.

Das obige ist der detaillierte Inhalt vonWie funktionieren verkettete Zuweisungen in Python und welche potenziellen Fallstricke gibt es beim Umgang mit veränderlichen Objekten?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!