Eine verkettete Zuweisung in Python, wie zum Beispiel:
x = y = somefunction()
ist äquivalent zu den folgenden zwei Anweisungen, die nacheinander ausgeführt werden:
temp = somefunction() x = temp y = temp
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)
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)
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)
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!