Python locals ()

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ů.

  1. Tabulka globálních symbolů
  2. 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.

Zajímavé články...