Metoden Local () opdaterer og returnerer en ordbog over den aktuelle lokale symboltabel.
En symboltabel er en datastruktur, der vedligeholdes af en kompilator, der indeholder alle nødvendige oplysninger om programmet.
Disse inkluderer variable navne, metoder, klasser osv.
Der er hovedsageligt to slags symboltabeller.
- Globalt symbolbord
- Lokal symboltabel
En global symboltabel gemmer al information relateret til programmets globale anvendelsesområde og er tilgængelig i Python ved hjælp af globals () -metoden.
Det globale omfang indeholder alle funktioner, variabler, der ikke er knyttet til nogen klasse eller funktion.
Ligeledes Lokal symbol tabel gemmer alle oplysninger om den lokale programmets anvendelsesområde, og der er adgang i Python hjælp locals()
metode.
Det lokale omfang kunne være inden for en funktion, inden for en klasse osv.
Anbefalet læsning: Navneområde og rækkevidde i Python
Syntaks for lokale ()
Syntaksen for locals()
metoden er:
lokale ()
lokale () Parametre
locals()
metoden tager ingen parametre.
Returneringsværdi fra lokale ()
locals()
metode opdaterer og returnerer ordbogen, der er knyttet til den aktuelle lokale symboltabel.
Eksempel 1: Hvordan lokale () arbejder i Python?
locals()
Produktion
('In': ('', 'locals ()'), 'Out': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __name__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' locals () ',' _ih ': (' ', 'locals ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'quit':)
Bemærk: globals()
og locals()
symboltabellen for det globale miljø er den samme.
Eksempel 2: Hvordan lokalbefolkningen () arbejder inden for et lokalt omfang?
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Produktion
localsNotPresent: () localsPresent: ('present': True)
Eksempel 3: Opdatering af lokale () ordbogsværdier
def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()
Produktion
Sandt sandt
I modsætning til globals()
ordbog, der afspejler ændringen til den aktuelle globale tabel, locals()
ændrer ordbog muligvis ikke oplysningerne i lokalbefolkningen.