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.
- Yleinen symbolitaulukko
- 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.