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 |