Dynamische Variablenzuweisung in Python
In Python ist es nicht möglich, lokale Variablen direkt dynamisch zu setzen. Während in anderen Antworten vorgeschlagen wird, die Funktion locals() zu ändern, ist dieser Ansatz unzuverlässig und funktioniert möglicherweise nicht immer, insbesondere innerhalb von Funktionen.
Alternativen für die dynamische Variablenzuweisung
Stattdessen Es gibt alternative Methoden zum dynamischen Zuweisen von Variablen:
d = {} d['xyz'] = 42 print(d['xyz']) # Output: 42
class C: pass obj = C() setattr(obj, 'xyz', 42) print(obj.xyz) # Output: 42
def outer_function(x): def inner_function(y): return x + y return inner_function # Returns a closure add_foo = outer_function(10) print(add_foo(5)) # Output: 15
Die Funktion locals() verstehen
Die Funktion locals() gibt ein Wörterbuch der lokalen Variablen innerhalb einer Funktion zurück. Eine direkte Änderung dieses Wörterbuchs hat jedoch keinen Einfluss auf die tatsächlichen Variablenwerte. Zum Beispiel:
def foo(): lcl = locals() lcl['xyz'] = 42 print(xyz) # Error: NameError: name 'xyz' is not defined
Dies liegt daran, dass durch das Ändern von locals() eine Kopie des lokalen Variablenwörterbuchs geändert wird, nicht die tatsächlichen Variablen selbst.
Fazit
Während die dynamische Zuweisung lokaler Variablen in Python nicht direkt möglich ist, bietet die Verwendung von Wörterbüchern, Objektattributen oder Abschlüssen alternative Lösungen zum Erreichen ähnlicher Funktionen. Es ist wichtig, die Nuancen der Funktion locals() zu beachten, um Verwirrung bei der Arbeit mit lokalen Variablen in Python zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie kann ich eine dynamische Variablenzuweisung in Python erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!