Wie unterscheiden sich globals(), locals() und vars() in Python?

Susan Sarandon
Freigeben: 2024-11-17 02:16:03
Original
305 Leute haben es durchsucht

How Do globals(), locals(), and vars() Differ in Python?

Erkundung der Nuancen von globals(), locals() und vars()

Python bietet drei Selbstbeobachtungsfunktionen, die Einblicke in die ermöglichen aktueller Namespace: globals(), locals() und vars(). Jedes gibt ein Wörterbuch mit spezifischen Informationen zurück.

globals()

globals() gibt konsistent das Wörterbuch des Namensraums des aktuellen Moduls zurück. Es bietet Zugriff auf alle global definierten Namen innerhalb des Moduls.

locals()

locals() ist dynamisch und sein Verhalten hängt vom Bereich ab.

  • Innerhalb einer Funktion: locals() gibt ein Wörterbuch des Namensraums der Funktion zurück. Es umfasst sowohl lokale Variablen als auch Abschlussvariablen zum Zeitpunkt des Aufrufs. Aktualisierungen des Wörterbuchs werden in den lokalen Variablen widergespiegelt. Zuweisungen an das zurückgegebene Wörterbuch ändern jedoch nicht die lokalen Variablen.

Zum Beispiel in einer Funktion:

def example():
    x = 1
    l = locals()
    l['x'] = 3
    print(x)  # Outputs 1, not 3
Nach dem Login kopieren
  • Außerhalb einer Funktion: locals() gibt das eigentliche Namespace-Wörterbuch zurück. Am Wörterbuch vorgenommene Änderungen werden im Namespace widergespiegelt und umgekehrt.

Zum Beispiel:

class Test:
    a = 'one'
    huh = locals()
    b = 'two'
    huh['c'] = 'three'
    print(huh)  # Outputs {'a': 'one', 'b': 'two', 'c': 'three', 'huh': {...}}
Nach dem Login kopieren

vars()

vars() akzeptiert ein Objekt als Argument und gibt sein dict-Attribut zurück. Normalerweise speichert das dict eines Objekts seine Attributdaten. Daher bietet die Bereitstellung eines Objekts an vars() Zugriff auf seine Attribute.

class Test:
    a = 'one'
    b = 'two'
    huh = vars(self)
    c = 'three'
    huh['d'] = 'four'
Nach dem Login kopieren

In diesem Beispiel gibt vars(self) das Attribut dict der Testinstanz zurück und ermöglicht den Zugriff auf seine Attribute wie „a“, „b“ und „c“.

Das obige ist der detaillierte Inhalt vonWie unterscheiden sich globals(), locals() und vars() in Python?. 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