Miestni obyvatelia Pythonu ()

Metóda locals () aktualizuje a vracia slovník aktuálnej tabuľky miestnych symbolov.

Tabuľka symbolov je dátová štruktúra udržiavaná kompilátorom, ktorá obsahuje všetky potrebné informácie o programe.

Patria sem názvy premenných, metódy, triedy atď.

Existujú hlavne dva druhy tabuľky symbolov.

  1. Tabuľka globálnych symbolov
  2. Tabuľka miestnych symbolov

Tabuľka globálnych symbolov uchováva všetky informácie súvisiace s globálnym rozsahom programu a je k nej prístup v Pythone pomocou metódy globals ().

Globálny rozsah obsahuje všetky funkcie, premenné, ktoré nie sú spojené so žiadnou triedou alebo funkciou.

Rovnako tak lokálna tabuľka symbolov ukladá všetky informácie týkajúce sa lokálneho rozsahu programu a je k nej prístup v Pythone pomocou locals()metódy.

Miestny rozsah môže byť vo funkcii, v triede atď.

Odporúčané čítanie: Menný priestor a rozsah v Pythone

Syntax miestnych obyvateľov ()

Syntax locals()metódy je:

 miestni obyvatelia ()

locals () parametre

locals() metóda neberie žiadne parametre.

Vrátiť hodnotu od miestnych obyvateľov ()

locals() metóda aktualizuje a vráti slovník spojený s aktuálnou tabuľkou miestnych symbolov.

Príklad 1: Ako locals () funguje v Pythone?

 locals()

Výkon

 ('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()tabuľka symbolov pre globálne prostredie je rovnaká.

Príklad 2: Ako fungujú locals () v lokálnom rozsahu?

 def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())

Výkon

 localsNotPresent: () localsPresent: ('present': True) 

Príklad 3: Aktualizácia hodnôt slovníka locals ()

 def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()

Výkon

 Pravda 

Na rozdiel od globals()slovníka, ktorý odráža zmenu skutočnej globálnej tabuľky, locals()slovník nemusí meniť informácie vo vnútri tabuľky miestnych obyvateľov.

Zaujímavé články...