Variabile globale in Python - Variabili Python non locali
In Python e nella maggior parte dei linguaggi di programmazione, le variabili dichiarate all'esterno di una funzione sono conosciute come variabili globali. È possibile accedere a tali variabili all'interno e all'esterno di una funzione, poiché hanno un ambito globale.
Ecco un esempio di variabile globale:
x = 10
def showX():
print("The value of x is", x)
showX()
# The value of x is 10
La variabile x
nel codice sopra è stata dichiarata all'esterno di una funzione: x=10
.
Utilizzando la funzione showX()
, siamo ancora in grado di accedere a x
perché è stato dichiarato in un ambito globale.
Diamo un'occhiata a un altro esempio che mostra cosa succede quando dichiariamo una variabile all'interno di una funzione e proviamo ad accedervi altrove.
def X():
x = 10
X()
def showX():
print("The value of x is", x)
showX()
NameError: name 'x' is not defined
Nell'esempio sopra, abbiamo dichiarato x
all'interno di una funzione e abbiamo provato ad accedervi in un'altra funzione. Ciò ha provocato un NameError perché x
non è stato definito a livello globale.
Le variabili definite all'interno delle funzioni sono chiamate variabili locali. Il loro valore può essere utilizzato solo all'interno della funzione in cui sono dichiarati.
Puoi modificare l'ambito di una variabile locale utilizzando la parola chiave global
, di cui parleremo nella prossima sezione.
A cosa serve la parola chiave global
utilizzata in Python?
La parola chiave globale viene utilizzata principalmente per due motivi:
- Per modificare il valore di una variabile globale.
- Per rendere una variabile locale accessibile al di fuori dell'ambito locale.
Diamo un'occhiata ad alcuni esempi per ogni scenario per aiutarti a capire meglio.
Esempio n. 1: modifica di una variabile globale utilizzando la parola chiave global
Nell'ultima sezione in cui abbiamo dichiarato una variabile globale, non abbiamo provato a modificare il valore della variabile. Tutto quello che abbiamo fatto è stato accedere e stampare il suo valore in una funzione.
Proviamo a modificare il valore di una variabile globale e vediamo cosa succede:
x = 10
def showX():
x = x + 2
print("The value of x is", x)
showX()
# local variable 'x' referenced before assignment
Come puoi vedere sopra, quando abbiamo provato ad aggiungere 2 al valore di x
, abbiamo ricevuto un errore. Questo perché possiamo solo accedere ma non modificare x
.
Per risolvere questo problema, utilizziamo la variabile global
. Ecco come:
x = 10
def showX():
global x
x = x + 2
print("The value of x is", x)
showX()
# The value of x is 12
Utilizzando la parola chiave global
nel codice sopra, siamo stati in grado di modificare x
e aggiungere 2 al suo valore iniziale.
Esempio n.2: come rendere accessibile una variabile locale al di fuori dell'ambito locale utilizzando la parola chiave global
Quando creavamo una variabile all'interno di una funzione, non era possibile utilizzare il suo valore all'interno di un'altra funzione perché il compilatore non riconosceva la variabile.
Ecco come possiamo risolvere il problema utilizzando la parola chiave global
:
def X():
global x
x = 10
X()
def showX():
print("The value of x is", x)
showX()
# The value of x is 10
Per rendere possibile che x
sia accessibile al di fuori del suo ambito locale, lo abbiamo dichiarato utilizzando la parola chiave global
: global x
.
Successivamente, abbiamo assegnato un valore a x
. Abbiamo quindi chiamato la funzione che abbiamo usato per dichiararlo: X()
Quando abbiamo chiamato la funzione showX()
, che stampa il valore di x
dichiarato nella funzione X()
, non abbiamo ricevuto un errore perché x
ha un ambito globale.
Riepilogo
In questo articolo abbiamo parlato delle variabili globali e locali in Python.
Gli esempi hanno mostrato come dichiarare sia le variabili globali che quelle locali.
Abbiamo anche parlato della parola chiave global
che consente di modificare il valore di una variabile globale o rendere accessibile una variabile locale al di fuori del suo ambito.
Buona programmazione!