Metoda locals () aktualizuje a vrací slovník aktuální tabulky místních symbolů.
Tabulka symbolů je datová struktura udržovaná kompilátorem, která obsahuje všechny potřebné informace o programu.
Patří sem názvy proměnných, metody, třídy atd.
Existují hlavně dva druhy tabulky symbolů.
- Tabulka globálních symbolů
- Tabulka místních symbolů
Tabulka globálních symbolů ukládá všechny informace související s globálním rozsahem programu a je přístupná v Pythonu pomocí metody globals ().
Globální obor obsahuje všechny funkce, proměnné, které nejsou spojeny s žádnou třídou nebo funkcí.
Podobně tabulka místních symbolů ukládá všechny informace související s místním rozsahem programu a je k němu přistupováno v Pythonu pomocí locals()
metody.
Místní obor by mohl být ve funkci, ve třídě atd.
Doporučené čtení: Obor názvů a rozsah v Pythonu
Syntaxe místních obyvatel ()
Syntaxe locals()
metody je:
místní obyvatelé()
locals () parametry
locals()
metoda nebere žádné parametry.
Vrátit hodnotu od místních ()
locals()
metoda aktualizuje a vrátí slovník přidružený k aktuální tabulce místních symbolů.
Příklad 1: Jak locals () funguje v Pythonu?
locals()
Výstup
('In': ('', 'locals ()'), 'Out': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __name__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' locals () ',' _ih ': (' ', 'locals ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'quit':)
Poznámka: globals()
a locals()
tabulka symbolů pro globální prostředí je stejná.
Příklad 2: Jak locals () funguje v místním rozsahu?
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Výstup
localsNotPresent: () localsPresent: ('present': True)
Příklad 3: Aktualizace hodnot slovníku locals ()
def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()
Výstup
Pravda, pravda
Na rozdíl od globals()
slovníku, který odráží změnu skutečné globální tabulky, locals()
slovník nemusí změnit informace uvnitř tabulky místních obyvatel.