questo codice
def gen(x):
def f():
return x
return f
print(gen(1)())
funziona bene.
ma quando eseguo questo codice,
def gen(x):
def f():
x += 1
return x
return f
print(gen(1)())
Ho ricevuto un messaggio di errore
UnboundLocalError: variabile locale "x" a cui si fa riferimento prima dell'assegnazione
cosa gli è successo? e Come capire la chiusura di python3.
risposte:
2 per risposta № 1def gen(x):
def f():
nonlocal x # add this line
x += 1
return x
return f
print(gen(1)())