Meetod Localals () värskendab ja tagastab praeguse kohaliku sümbolitabeli sõnastiku.
Sümbolitabel on kompilaatori hallatav andmestruktuur, mis sisaldab kogu vajalikku teavet programmi kohta.
Nende hulka kuuluvad muutujate nimed, meetodid, klassid jne.
Sümboolitabelit on peamiselt kahte tüüpi.
- Ülemaailmne sümbolitabel
- Kohalike sümbolite tabel
Global sümbol tabelis salvestab kõik andmed, mis on seotud globaalse ulatusega programmi ja on külastatud Python kasutades globaalseid () meetod.
Globaalne ulatus hõlmab kõiki funktsioone, muutujaid, mis pole seotud ühegi klassi ega funktsiooniga.
Samamoodi salvestab kohalik sümbolitabel kogu teabe, mis on seotud programmi kohaliku ulatusega, ja sellele pääseb Pythonis juurde locals()
meetodi abil.
Kohalik ulatus võiks olla funktsiooni sees, klassis jne.
Soovitatav lugemine: Pythoni nimeruum ja ulatus
Kohalike süntaks ()
Meetodi süntaks locals()
on:
kohalikud ()
kohalikud () parameetrid
locals()
meetod ei võta parameetreid.
Tagasiväärtus kohalikelt ()
locals()
meetod värskendab ja tagastab praeguse kohaliku sümbolitabeliga seotud sõnastiku.
Näide 1: Kuidas kohalikud () Pythonis töötavad?
locals()
Väljund
('In': ('', 'localals ()'), 'Out': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __nimi__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' kohalikud () ',' _ih ': (' ', 'kohalikud ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'quit':)
Märkus: globals()
ja locals()
globaalse keskkonna sümbolitabel on sama.
Näide 2: Kuidas kohalikud () kohalikus ulatuses toimivad?
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Väljund
localsNotPresent: () localsPresent: ('kohal': tõsi)
Näide 3: kohalike () sõnastiku väärtuste värskendamine
def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()
Väljund
Tõsi tõsi
Erinevalt globals()
sõnaraamatust, mis kajastab tegeliku globaalse tabeli locals()
muutumist , ei pruugi sõnastik muuta kohalike tabelis olevat teavet.