logo

Variabili globali e locali in Python

Variabili globali di Python sono quelli che non sono definiti all'interno di alcuna funzione e hanno un ambito globale mentre Python variabili locali sono quelli definiti all'interno di una funzione e il loro ambito è limitato solo a quella funzione. In altre parole, possiamo dire che le variabili locali sono accessibili solo all'interno della funzione in cui è stata inizializzata mentre le variabili globali sono accessibili in tutto il programma e all'interno di ogni funzione.

Variabili locali Python

Le variabili locali in Python sono quelle inizializzate all'interno di una funzione e appartengono solo a quella particolare funzione. Non è possibile accedervi da nessuna parte al di fuori della funzione. Vediamo come creare una variabile locale.



Creazione di variabili locali in Python

Definizione e accesso alle variabili locali

Python3








def> f():> ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(s)> # Driver code> f()>

>

>

Produzione

I love Geeksforgeeks>

È possibile utilizzare una variabile locale all'esterno di una funzione?

Se proveremo a utilizzare questa variabile locale al di fuori della funzione, vedremo cosa succederà.

Python3




def> f():> > ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(>'Inside Function:'>, s)> # Driver code> f()> print>(s)>

>

>

Produzione:

 NameError : name 's' is not defined>

Variabili globali di Python

Sono quelli definiti all'esterno di qualsiasi funzione e accessibili in tutto il programma, cioè all'interno e all'esterno di ogni funzione. Vediamo come creare una variabile globale Python.

Crea una variabile globale in Pitone

Definizione e accesso alle variabili globali Python.

Python3




# This function uses global variable s> def> f():> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(>'Outside Function'>, s)>

>

>

Produzione

Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>

La variabile s è definita come variabile globale e viene utilizzata sia all'interno che all'esterno della funzione.

Nota: Poiché non ci sono variabili locali, verrà utilizzato il valore delle variabili globali, ma assicurati che sia la variabile locale che quella globale abbiano lo stesso nome.

Perché usiamo variabili locali e globali in Python?

Ora, cosa succede se esiste una variabile Python con lo stesso nome inizializzata all'interno di una funzione e globalmente? Ora sorge la domanda: la variabile locale avrà qualche effetto sulla variabile globale o viceversa, e cosa accadrà se cambiamo il valore di una variabile all'interno della funzione f()? Influirà anche a livello globale? Lo testiamo nel seguente pezzo di codice:

Esempio

Se una variabile con lo stesso nome è definita anche all'interno dell'ambito della funzione, stamperà solo il valore fornito all'interno della funzione e non il valore globale.

Python3




# This function has a variable with> # name same as s.> def> f():> >s>=> 'Me too.'> >print>(s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(s)>

>

>

Produzione

Me too. I love Geeksforgeeks>

Ora, cosa succede se proviamo a cambiare il valore di una variabile globale all'interno della funzione? Vediamolo utilizzando l'esempio seguente.

Python3




# This function uses global variable s> def> f():> >s>+>=> 'GFG'> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()>

>

>

Produzione:

 UnboundLocalError : local variable 's' referenced before assignment>

Per far funzionare il programma sopra, dobbiamo usare la parola chiave globale in Python. Vediamo qual è questa parola chiave globale.

La parola chiave globale

Dobbiamo solo usare il file parola chiave globale in una funzione se vogliamo eseguire compiti o modificare la variabile globale. global non è necessario per la stampa e l'accesso. Python presuppone che vogliamo una variabile locale a causa dell'assegnazione a s all'interno di f(), quindi la prima istruzione lancia il messaggio di errore. Qualsiasi variabile modificata o creata all'interno di una funzione è locale se non è stata dichiarata come variabile globale. Per dire a Python che vogliamo usare la variabile globale, dobbiamo usare la parola chiave globale , come si può vedere nel seguente esempio:

Esempio 1: Utilizzando la parola chiave globale Python

dipendenza parziale

Python3




# This function modifies the global variable 's'> def> f():> >global> s> >s>+>=> ' GFG'> >print>(s)> >s>=> 'Look for Geeksforgeeks Python Section'> >print>(s)> # Global Scope> s>=> 'Python is great!'> f()> print>(s)>

>

>

Produzione

Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section>

Ora non c'è alcuna ambiguità.

Esempio 2: Utilizzo delle variabili globali e locali di Python

Python3




a>=> 1> # Uses global because there is no local 'a'> def> f():> >print>(>'Inside f() : '>, a)> # Variable 'a' is redefined as a local> def> g():> >a>=> 2> >print>(>'Inside g() : '>, a)> # Uses global keyword to modify global 'a'> def> h():> >global> a> >a>=> 3> >print>(>'Inside h() : '>, a)> # Global scope> print>(>'global : '>, a)> f()> print>(>'global : '>, a)> g()> print>(>'global : '>, a)> h()> print>(>'global : '>, a)>

>

>

Produzione

global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3>

Differenza b/n Variabile locale vs. Variabili globali

Base di confronto Variabile globale Variabile locale
Definizione dichiarato al di fuori delle funzioni dichiarato all'interno delle funzioni
Tutta la vita Vengono creati all'inizio dell'esecuzione del programma e vengono persi quando il programma viene terminato Vengono creati quando la funzione inizia la sua esecuzione e vengono persi quando la funzione termina
Condivisione dei dati Offre la condivisione dei dati Non offre la condivisione dei dati
Scopo È possibile accedere a tutto il codice Può accedere solo all'interno della funzione
Parametri necessari il passaggio dei parametri non è necessario il passaggio dei parametri è necessario
Magazzinaggio Una posizione fissa selezionata dal compilatore Sono mantenuti in pila
Valore Una volta che il valore cambia, si riflette in tutto il codice una volta modificata la variabile non influisce sulle altre funzioni del programma