Python helyiek ()

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.

  1. Globális szimbólum táblázat
  2. 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.

érdekes cikkek...