Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich über die Verwendung von „locals()' hinaus lokale Variablen in Python dynamisch festlegen?

Wie kann ich über die Verwendung von „locals()' hinaus lokale Variablen in Python dynamisch festlegen?

DDD
Freigeben: 2024-12-05 06:07:12
Original
738 Leute haben es durchsucht

How Can I Dynamically Set Local Variables in Python Beyond Using `locals()`?

Dynamische Variableneinstellung: Beyond locals()

In Python stellt das dynamische Festlegen einer lokalen Variablen eine Herausforderung dar, wenn der Variablenname selbst dynamisch ist . Entgegen weit verbreiteten Annahmen sind Änderungen am locals()-Wörterbuch nicht immer zuverlässig zum Festlegen lokaler Variablen innerhalb von Funktionen.

Alternative Ansätze:

Anstatt sich auf locals( ), ziehen Sie die folgenden Alternativen in Betracht:

  • Verwenden von a Wörterbuch:
    Erstellen Sie ein Wörterbuch und weisen Sie den dynamischen Variablennamen einem Schlüssel zu. Greifen Sie über das Wörterbuch auf den Wert zu.

    d = {}
    d['xyz'] = 42
    print(d['xyz'])  # Prints 42
    Nach dem Login kopieren
  • Verwenden von Klassenattributen:
    Definieren Sie eine Klasse und legen Sie den Namen der dynamischen Variablen als Attribut fest. Greifen Sie über die Klasseninstanz auf den Wert zu.

    class C:
        pass
    
    obj = C()
    setattr(obj, 'xyz', 42)
    print(obj.xyz)  # Prints 42
    Nach dem Login kopieren

Verhalten von Locals() verstehen:

Während locals() möglicherweise innerhalb von Funktionen funktioniert Bei Compiler-Optimierungen ist zu beachten, dass eine direkte Änderung von locals() zu unerwarteten Ergebnissen führen kann. Zuweisungen zum zurückgegebenen Wörterbuch sind kurzlebig und werden beim nächsten Aufruf von locals() überschrieben.

IronPython-Besonderheiten:

In IronPython verhalten sich locals() anders. Der Aufruf von locals() unter einem anderen Namen bindet an die lokalen Variablen des Bereichs, an den der Name gebunden wurde. Es ist jedoch nicht möglich, über diesen gebundenen Namen auf die lokalen Funktionen zuzugreifen.

Das obige ist der detaillierte Inhalt vonWie kann ich über die Verwendung von „locals()' hinaus lokale Variablen in Python dynamisch festlegen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage