Python locals ()

Il metodo locals () aggiorna e restituisce un dizionario della tabella dei simboli locale corrente.

Una tabella dei simboli è una struttura dati mantenuta da un compilatore che contiene tutte le informazioni necessarie sul programma.

Questi includono nomi di variabili, metodi, classi, ecc.

Esistono principalmente due tipi di tabelle dei simboli.

  1. Tabella dei simboli globali
  2. Tabella dei simboli locali

Una tabella dei simboli globali memorizza tutte le informazioni relative all'ambito globale del programma e vi si accede in Python utilizzando il metodo globals ().

Lo scope globale contiene tutte le funzioni, variabili che non sono associate a nessuna classe o funzione.

Allo stesso modo, la tabella dei simboli locale memorizza tutte le informazioni relative all'ambito locale del programma e vi si accede in Python utilizzando il locals()metodo.

L'ambito locale potrebbe essere all'interno di una funzione, all'interno di una classe, ecc.

Lettura consigliata: spazio dei nomi e ambito di in Python

Sintassi dei locali ()

La sintassi del locals()metodo è:

 locali ()

locals () Parametri

locals() metodo non accetta alcun parametro.

Valore restituito da locals ()

locals() aggiorna e restituisce il dizionario associato alla tabella dei simboli locale corrente.

Esempio 1: come funziona locals () in Python?

 locals()

Produzione

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

Nota: globals() e la locals()tabella dei simboli per l'ambiente globale è la stessa.

Esempio 2: come funziona locals () all'interno di uno scope locale?

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

Produzione

 localsNotPresent: () localsPresent: ('present': True) 

Esempio 3: aggiornamento dei valori del dizionario locals ()

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

Produzione

 Vero vero 

A differenza del globals()dizionario che riflette la modifica alla tabella globale effettiva, il locals()dizionario potrebbe non modificare le informazioni all'interno della tabella delle variabili locali.

Articoli interessanti...