A localals () metódus frissíti és visszaküldi az aktuális helyi szimbólumtáblázat szótárát.
A szimbólumtábla egy fordító által fenntartott adatstruktúra, amely tartalmazza a programmal kapcsolatos összes szükséges információt.
Ide tartoznak a változónevek, módszerek, osztályok stb.
Főleg kétféle szimbólumtábla létezik.
- Globális szimbólum táblázat
- Helyi szimbólum táblázat
Egy globális szimbólumtábla tárolja a program globális hatókörével kapcsolatos összes információt, és a Python-ban érhető el globals () módszerrel.
A globális hatókör tartalmazza az összes olyan függvényt, változót, amely nem kapcsolódik egyetlen osztályhoz vagy függvényhez sem.
Hasonlóképpen, a Helyi szimbólumtábla a program helyi hatókörével kapcsolatos összes információt tárolja, és a Python-ban locals()
metódus segítségével érhető el .
A lokális hatókör lehet egy függvény, egy osztály stb.
Ajánlott olvasmány: A Python névtere és hatóköre
A helyiek szintaxisa ()
A locals()
módszer szintaxisa :
helyiek ()
helyiek () Paraméterek
locals()
A metódus nem tartalmaz paramétereket.
Visszatérési érték a helyiektől ()
locals()
A módszer frissíti és visszaküldi az aktuális helyi szimbólumtáblához társított szótárt.
1. példa: Hogyan működnek a helyiek () a Pythonban?
locals()
Kimenet
('In': ('', 'localals ()'), 'Out': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __név__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' helyiek () ',' _ih ': (' ', 'helyiek ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'quit':)
Megjegyzés: globals()
és locals()
a globális környezet szimbólumtáblázata megegyezik.
2. példa: Hogyan működnek a helyi lakosok () a helyi hatókörön belül?
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Kimenet
localsNotPresent: () localsPresent: ('jelen': Igaz)
3. példa: Helyi () szótárértékek frissítése
def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()
Kimenet
Igaz igaz
Ellentétben a globals()
szótárral, amely a tényleges globális táblázat változását tükrözi, locals()
előfordulhat , hogy a szótár nem változtatja meg a helyiek táblázatában található információkat.