Python-paikalliset ()

Paikalliset () -menetelmä päivittää ja palauttaa nykyisen paikallisen symbolitaulukon sanakirjan.

Symbolitaulukko on kääntäjän ylläpitämä tietorakenne, joka sisältää kaikki tarvittavat tiedot ohjelmasta.

Näitä ovat muuttujien nimet, menetelmät, luokat jne.

Symbolitaulukkoa on pääasiassa kahdenlaisia.

  1. Yleinen symbolitaulukko
  2. Paikallinen symbolitaulukko

Global symboli taulukko tallentaa kaikki tiedot, jotka liittyvät yleiseen soveltamisalaan ohjelman, ja pääsee Pythonilla käyttäen global () menetelmä.

Globaali laajuus sisältää kaikki toiminnot, muuttujat, joita ei ole yhdistetty mihinkään luokkaan tai toimintoon.

Samoin Paikallinen symbolitaulukko tallentaa kaikki tiedot, jotka liittyvät ohjelman paikalliseen laajuuteen, ja siihen pääsee Pythonissa locals()menetelmällä.

Paikallinen laajuus voi olla funktion sisällä, luokassa jne.

Suositeltava lukeminen: Nimitila ja Pythonin laajuus

Paikallisten syntakse ()

Menetelmän syntaksi locals()on:

 paikalliset ()

paikalliset () Parametrit

locals() menetelmä ei ota parametreja.

Palautusarvo paikallisilta ()

locals() menetelmä päivittää ja palauttaa nykyiseen paikalliseen symbolitaulukkoon liittyvän sanakirjan.

Esimerkki 1: Kuinka paikalliset () toimivat Pythonissa?

 locals()

Tuotos

 ('In': ('', 'paikalliset ()'), 'Out': (), '_': '', '__': '', '___': '', '__builtin__':, ' __builtins__ ':,' __name__ ':' __main__ ',' _dh ': (' / home / repl '),' _i ':' ',' _i1 ':' paikalliset () ',' _ih ': (' ', 'paikalliset ()'), '_ii': '', '_iii': '', '_oh': (), '_sh':, 'exit':, 'get_ipython':>, 'quit':) 

Huomaa: globals() ja locals()globaalin ympäristön symbolitaulukko on sama.

Esimerkki 2: Kuinka paikalliset () toimivat paikallisen laajuuden sisällä?

 def localsNotPresent(): return locals() def localsPresent(): present = True return locals() print('localsNotPresent:', localsNotPresent()) print('localsPresent:', localsPresent())

Tuotos

 localsNotPresent: () localalsPresent: ('läsnä': tosi) 

Esimerkki 3: Paikallisten () sanakirjan arvojen päivittäminen

 def localsPresent(): present = True print(present) locals()('present') = False; print(present) localsPresent()

Tuotos

 Totta totta 

Toisin kuin globals()sanakirja, joka heijastaa muutosta todelliseen globaaliin taulukkoon, locals()sanakirja ei välttämättä muuta tietoja paikallisten taulukossa.

Mielenkiintoisia artikkeleita...