Metoda domačinov () posodobi in vrne slovar trenutne tabele lokalnih simbolov.
Tabela simbolov je podatkovna struktura, ki jo vzdržuje prevajalnik in vsebuje vse potrebne informacije o programu.
Sem spadajo imena spremenljivk, metode, razredi itd.
Obstajata predvsem dve vrsti tabel s simboli.
- Globalna tabela simbolov
- Tabela lokalnih simbolov
Globalni simbol miza shranjuje vse informacije, povezane z globalno okviru programa, in je dostopna v Python z uporabo Globals () metoda.
Globalni obseg vsebuje vse funkcije, spremenljivke, ki niso povezane z nobenim razredom ali funkcijo.
Podobno tabela lokalnih simbolov shranjuje vse informacije, povezane z lokalnim obsegom programa, in je dostopna v Pythonu z uporabo locals()
metode.
Lokalni obseg je lahko znotraj funkcije, znotraj razreda itd.
Priporočeno branje: Imenski prostor in obseg v Pythonu
Sintaksa domačinov ()
Sintaksa locals()
metode je:
domačini ()
domačini () Parametri
locals()
metoda ne zajema nobenih parametrov.
Vrnjena vrednost od domačinov ()
locals()
metoda posodobi in vrne slovar, povezan s trenutno tabelo lokalnih simbolov.
Primer 1: Kako domačini () delujejo v Pythonu?
locals()
Izhod
('In': ('', 'domačini ()'), 'Out': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __name__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' domačini () ',' _ih ': (' ', 'domačini ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'quit':)
Opomba: globals()
in locals()
tabela simbolov za globalno okolje je enaka.
Primer 2: Kako domačini () delujejo znotraj lokalnega obsega?
def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())
Izhod
domačiniNotPresent: () domačiniPresent: ('prisoten': True)
Primer 3: Posodabljanje vrednosti slovarjev local ()
def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()
Izhod
Resnično Resnično
Za razliko od globals()
slovarja, ki odraža spremembo dejanske globalne tabele, locals()
slovar morda ne bo spremenil informacij znotraj tabele domačinov.