Metoda local () ažurira i vraća rječnik trenutne tablice lokalnih simbola.
Tablica simbola je struktura podataka koju održava prevodilac i koja sadrži sve potrebne informacije o programu.
Uključuju imena varijabli, metode, klase itd.
Postoje uglavnom dvije vrste tablice simbola.
- Globalna tablica simbola
- Tablica lokalnih simbola
Tablica globalnih simbola pohranjuje sve informacije povezane s globalnim opsegom programa i pristupa joj se u Pythonu metodom globals ().
Globalni opseg sadrži sve funkcije, varijable koje nisu povezane s bilo kojom klasom ili funkcijom.
Isto tako, tablica lokalnih simbola pohranjuje sve informacije povezane s lokalnim opsegom programa i pristupa joj se u Pythonu pomoću locals()
metode.
Lokalni opseg može biti unutar funkcije, unutar klase itd.
Preporučena literatura: Prostor imena i opseg u Pythonu
Sintaksa lokalnog stanovništva ()
Sintaksa locals()
metode je:
mještani ()
domaći () parametri
locals()
metoda ne uzima nikakve parametre.
Povratna vrijednost od lokalnog stanovništva ()
locals()
metoda ažurira i vraća rječnik povezan s trenutnom tablicom lokalnog simbola.
Primjer 1: Kako lokalno stanovništvo () radi u Pythonu?
locals()
Izlaz
('Ulaz': ('', 'lokalno stanovništvo ()'), 'Izlaz': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __name__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' lokalno stanovništvo () ',' _ih ': (' ', 'domaći ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'quit':)
Napomena: globals()
i locals()
tablica simbola za globalno okruženje je ista.
Primjer 2: Kako lokalno stanovništvo () radi unutar lokalnog opsega?
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Izlaz
localNotPresent: () localPresent: ('present': True)
Primjer 3: Ažuriranje vrijednosti rječnika lokalnog jezika ()
def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()
Izlaz
Istina istina
Za razliku od globals()
rječnika koji odražava promjenu stvarne globalne tablice, locals()
rječnik možda neće promijeniti podatke unutar tablice lokalnog stanovništva.