In questo articolo imparerai a conoscere la parola chiave globale, la variabile globale e quando utilizzare le parole chiave globali.
Prima di leggere questo articolo, assicurati di avere alcune nozioni di base sulle variabili globali, locali e non locali di Python.
Qual è la parola chiave globale
In Python, la globalparola chiave consente di modificare la variabile al di fuori dell'ambito corrente. Viene utilizzato per creare una variabile globale e apportare modifiche alla variabile in un contesto locale.
Regole della parola chiave globale
Le regole di base per la globalparola chiave in Python sono:
- Quando creiamo una variabile all'interno di una funzione, per impostazione predefinita è locale.
- Quando definiamo una variabile al di fuori di una funzione, è globale per impostazione predefinita. Non devi usare la
globalparola chiave. - Usiamo la
globalparola chiave per leggere e scrivere una variabile globale all'interno di una funzione. - L'uso di una
globalparola chiave al di fuori di una funzione non ha effetto.
Uso della parola chiave globale
Facciamo un esempio.
Esempio 1: accesso alla variabile globale dall'interno di una funzione
c = 1 # global variable def add(): print(c) add()
Quando eseguiamo il programma sopra, l'output sarà:
1
Tuttavia, potremmo avere alcuni scenari in cui dobbiamo modificare la variabile globale dall'interno di una funzione.
Esempio 2: modifica della variabile globale dall'interno della funzione
c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()
Quando eseguiamo il programma sopra, l'output mostra un errore:
UnboundLocalError: variabile locale 'c' referenziata prima dell'assegnazione
Questo perché possiamo accedere solo alla variabile globale ma non possiamo modificarla dall'interno della funzione.
La soluzione per questo è utilizzare la globalparola chiave.
Esempio 3: modifica della variabile globale dall'interno di una funzione utilizzando global
c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)
Quando eseguiamo il programma sopra, l'output sarà:
All'interno add (): 2 In main: 2
Nel programma sopra, definiamo c come parola chiave globale all'interno della add()funzione.
Quindi, incrementiamo la variabile c di 1, ie c = c + 2. Dopodiché, chiamiamo la add()funzione. Infine, stampiamo la variabile globale c.
Come possiamo vedere, il cambiamento è avvenuto anche sulla variabile globale al di fuori della funzione c = 2,.
Variabili globali nei moduli Python
In Python, creiamo un singolo modulo config.pyper contenere variabili globali e condividere informazioni tra i moduli Python all'interno dello stesso programma.
Ecco come possiamo condividere le variabili globali tra i moduli python.
Esempio 4: condividere una variabile globale tra i moduli Python
Crea un config.pyfile, per memorizzare le variabili globali
a = 0 b = "empty"
Crea un update.pyfile, per modificare le variabili globali
import config config.a = 10 config.b = "alphabet"
Crea un main.pyfile, per testare le modifiche nel valore
import config import update print(config.a) print(config.b)
Quando eseguiamo il main.pyfile, l'output sarà
10 alfabeto
In precedenza, abbiamo creato tre file: config.py, update.py, e main.py.
Il modulo config.pymemorizza le variabili globali di a e b. Nel update.pyfile importiamo il config.pymodulo e modifichiamo i valori di a e b. Allo stesso modo, nel main.pyfile, importiamo sia config.pye update.pymodule. Infine, stampiamo e testiamo i valori delle variabili globali indipendentemente dal fatto che siano modificati o meno.
Globale nelle funzioni annidate
Ecco come puoi usare una variabile globale nella funzione annidata.
Esempio 5: utilizzo di una variabile globale in una funzione annidata
def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x)
L'output è:
Prima di chiamare il bar: 20 Calling bar ora Dopo aver chiamato il bar: 20 x in principale: 25
Nel programma precedente, abbiamo dichiarato una variabile globale all'interno della funzione annidata bar(). All'interno della foo()funzione, x non ha alcun effetto sulla parola chiave globale.
Prima e dopo la chiamata bar(), la variabile x assume il valore della variabile locale ie x = 20. Al di fuori della foo()funzione, la variabile x assumerà il valore definito nella bar()funzione, ad es x = 25. Questo perché abbiamo utilizzato la globalparola chiave in x per creare una variabile globale all'interno della bar()funzione (ambito locale).
Se apportiamo modifiche all'interno della bar()funzione, le modifiche vengono visualizzate al di fuori dell'ambito locale, ad es foo().








