Domačini Pythona ()

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.

  1. Globalna tabela simbolov
  2. 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.

Zanimive Članki...