English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Eingebettete Python-Funktionen
Die Methode locals() aktualisiert und gibt das Dictionary der aktuellen lokalen Symboltable zurück.
Die Symboltable ist eine durch den Compiler verwaltete Datenstruktur, die alle notwendigen Informationen des Programms enthält.
Dies umfasst Variablennamen, Methoden, Klassen usw.
Es gibt hauptsächlich zwei Arten von Symboltabellen.
Globale Symboltable
Lokale Symboltable
EinGlobal Die Symboltable speichert alle Informationen im globalen Bereich des Programms und kann mit Python aufgerufen werden.globals()Methoden.
Der globale Bereich umfasst alle Funktionen und Variablen, die mit keiner Klasse oder Funktion verbunden sind.
GleichzeitigLocal Die Symboltable speichert alle Informationen, die mit dem lokalen Bereich des Programms zusammenhängen, und kann in Python mit der Methode locals() aufgerufen werden.
Der lokale Bereich kann innerhalb von Funktionen, Klassen usw. liegen.
Empfohlene Lektüre: Namensräume und Bereiche in Python
Die Syntax der Methode locals() ist:
locals()
Die Methode locals() nimmt keine Parameter an.
Die Methode locals() aktualisiert und gibt das mit dem aktuellen lokalen Symboltable verbundene Dictionary zurück.
locals()
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
{'In': ['', 'locals()'], 'Out': {}, '_': '', '__': '', '___': '', '__builtin__':, '__builtins__':, '__name__': '__main__', _dh: ['',/home/repl], _i: '', _i1': 'locals()', _ih: ['', 'locals()'], _ii: '', _iii: '', _oh: {}, _sh:, 'exit':, 'get_ipython':>, 'quit':}
Hinweis:Die Symboltabellen globals() und locals() im globalen Umfeld sind identisch.
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
localsNotPresent: {} localsPresent: {'present': True}
def localsPresent(): present = True print(present) locals()['present'] = False; print(present) localsPresent()
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
True True
Im Gegensatz zum Dictionary globals() (das Änderungen an der tatsächlichen globalen Tabelle widerspiegelt), kann das Dictionary locals() möglicherweise keine Informationen in der locals-Tabelle ändern.