Zugriff auf dynamisch festgelegte lokale Variablen in Python
Trotz vorheriger Vorschläge ist die direkte Änderung lokaler Variablen durch locals() unzuverlässig und undefiniert. Stattdessen können mehrere praktische Ansätze verwendet werden, um eine dynamische Manipulation lokaler Variablen zu erreichen.
Wörterbuchmanipulation
Verwenden Sie ein Wörterbuch, um dynamische lokale Variablen zuzuweisen und darauf zuzugreifen:
d = {} d['xyz'] = 42 print(d['xyz'])
Objektattribute
Legen Sie Attribute für ein Objekt fest, um dynamische lokale Objekte zu erstellen Variablen:
class C: pass obj = C() setattr(obj, 'xyz', 42) print(obj.xyz)
Hinweis:
Der Zugriff auf Variablen in Nicht-Funktions-Namespaces (Module, Klassendefinitionen, Instanzen) umfasst normalerweise Wörterbuchsuchen. Funktions-Locals können hinsichtlich der Geschwindigkeit optimiert werden und eine direkte Änderung von Locals() innerhalb einer Funktion ist im Allgemeinen nicht möglich.
IronPython-Ausnahme
In IronPython ist der explizite Aufruf von Locals( ) gibt die lokalen Variablen als Wörterbuch zurück. Durch das Binden eines anderen Namens an lokale Variablen innerhalb einer Funktion wird Zugriff auf die lokalen Variablen des Bindungsbereichs gewährt.
Fazit
Die Verwendung von Wörterbüchern oder Objektattributen bietet zuverlässige Methoden für dynamische Einstellungen lokale Variablen in Python. Vermeiden Sie es, sich auf die direkte Änderung von locals() zu verlassen, um unvorhersehbares Verhalten zu verhindern.
Das obige ist der detaillierte Inhalt vonWie kann ich lokale Variablen in Python dynamisch festlegen und darauf zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!