Istruzione global in Python
Supponiamo di avere una variabile
globale esterna i. C'è anche una funzione
func che aggiunge uno a questa
variabile:
i = 0
def func():
i += 1 # darà un errore
return i
Dopo l'esecuzione del codice, verrà restituito un errore,
perché c'è un conflitto tra la variabile globale
i, dichiarata nel codice esterno, e
la variabile locale i, a cui viene aggiunto
1, ma la variabile stessa non è ancora
dichiarata. Per correggere questo
problema e far sì che la funzione lavori proprio con
la variabile globale, è necessario utilizzare
l'istruzione global. Questa istruzione
rappresenta una dichiarazione che
viene eseguita per l'intero blocco di codice corrente
in cui è definita.
Riscriviamo l'esempio precedente, dichiarando
nel corpo della funzione global:
def func():
global i
i += 1
return i
print(func()) # restituirà 1
Nel codice seguente, un programmatore ha commesso un errore:
num = 4
def func():
num *= 2
return num
print(func())
Cosa non va in questo codice? Trovate e correggete l'errore dell'autore del codice.
Nel codice seguente, un programmatore ha commesso un errore:
num = 10
def func():
num -= 3
return i
print(func())
Cosa non va in questo codice? Trovate e correggete l'errore dell'autore del codice.