Parola chiave globale Python (con esempi)

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().

Articoli interessanti...