English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Corso di base di Python

Controllo dei flussi in Python

Funzione in Python

Tipi di dati in Python

Operazioni su file in Python

Oggetti e classi in Python

Data e ora in Python

Conoscenze avanzate di Python

Manuale di riferimento di Python

Variabili globali, locali e non locali in Python

In questo articolo, imparerai le variabili globali, locali, non locali di Python e dove utilizzarle.

Variabile globale

In Python, le variabili dichiarate al di fuori di una funzione o in un contesto globale sono chiamate variabili globali. Questo significa che le variabili globali possono essere accedute sia all'interno che all'esterno di una funzione.

Ecco un esempio di come creare una variabile globale in Python.

Esempio 1: Creazione di una variabile globale

x = "global"
def foo():
 print("interno x:", x)
foo()
print("esterno x:", x)

Quando eseguiamo il codice, il risultato sarà:

interno x: global
esterno x: global

Nel codice sopra, abbiamoxcreato come variabile globale e definito foo() per stampare la variabile globalex. Infine, chiamiamo foo() e verrà stampatoxdel.

Se si desidera modificarexdel.

x = "global"
def foo():
 x = x * 2
 print(x)
foo()

Quando eseguiamo il codice, il risultato sarà:

Se si desidera modificare il valore

Cosa succede al valore?

Per implementare questa funzione, abbiamo utilizzato la parola chiave globale. Per ulteriori informazioni, visitareParola chiave globale di Python.

Variabile locale

Le variabili dichiarate all'interno di una funzione o in un contesto locale sono chiamate variabili locali.

Esempio 2: Accesso a variabile locale al di fuori della portata

def foo():
 y = "local"
foo()
print(y)

Quando eseguiamo il codice, il risultato sarà:

NameError: nome 'y' non definito

L'output mostra un errore perché stiamo cercando di accedere a una variabile locale y nel contesto globale, mentre le variabili locali lavorano solo all'interno di foo() o in un contesto locale.

Guardiamo un esempio di come creare variabili locali in Python.

Esempio 3: Creazione di variabili locali

Di solito, dichiariamo una variabile all'interno di una funzione per creare una variabile locale.

def foo():
 y = "local"
 print(y)
foo()

quando eseguiamo il codice, esce:

local

vediamoil problema precedente, dovexè una variabile globale, e vogliamo modificarla all'interno di foo()x.

Variabili globali e locali

In questo esempio, mostreremo come utilizzare contemporaneamente variabili globali e locali nello stesso codice.

Esempio 4: Uso contemporaneo di variabili globali e locali nello stesso codice

x = "global"
def foo():
 global x
 y = "local"
 x = x * 2
 print(x)
 print(y)
 
foo()

Quando eseguiamo il codice, il risultato sarà:

global global 
local

Nel codice sopra, abbiamo dichiarato x come variabile globale e y come variabile locale all'interno di foo(). Poi, abbiamo utilizzato l'operatore di moltiplicazione * per modificare la variabile globale x e contemporaneamente esportare x e y.

Dopo la chiamata a foo(), il valore di x è diventato global global, perché abbiamo utilizzato x * 2 per stampare due volte global. Poi, abbiamo stampato il valore della variabile locale y, ovvero la variabile locale.

Esempio 5: Variabile globale e locale con lo stesso nome

x = 5
def foo():
 x = 10
 print("local x:", x)
foo()
print("global x:", x)

Quando eseguiamo il codice, il risultato sarà:

local x: 10
global x: 5

Nel codice sopra, abbiamo usato lo stesso nome x per la variabile globale e locale. Quando stampiamo la stessa variabile, otteniamo risultati diversi perché la variabile è声明ata in due sferhe di visibilità, ossia la sfera di visibilità locale all'interno di foo() e la sfera di visibilità globale fuori da foo().

Quando stampiamo la variabile all'interno di foo(), essa stampa local x: 10. Questo si chiama sfera di visibilità locale della variabile.

Allo stesso modo, quando stampiamo la variabile fuori da foo(), essa stampa global x: 5. Questo si chiama sfera di visibilità globale della variabile.

Variabile non locale

Le variabili non locali sono utilizzate per funzioni annidate senza sfera di visibilità locale definita. Questo significa che la variabile non può essere né in una sfera di visibilità locale né in una sfera di visibilità globale.

Ecco un esempio di come creare una variabile globale in Python.

Creiamo una variabile non locale utilizzando la parola chiave nonlocal.

Esempio 6: Creare una variabile non locale

def outer():
 x = "local"
 
 def inner():
 nonlocal x
 x = "nonlocal"
 print("inner:", x)
 
 inner()
 print("outer:", x)
outer()

Quando eseguiamo il codice, il risultato sarà:

inner: nonlocal
outer: nonlocal

Nel codice sopra, c'è una funzione annidata inner(). Utilizziamo la parola chiave nonlocal per creare una variabile non locale. inner() è definita all'interno di un'altra funzione external().

AttenzioneSe abbiamo cambiato il valore di una variabile non locale, queste modifiche appariranno nella variabile locale.