ten kod
def gen(x):
def f():
return x
return f
print(gen(1)())
działa dobrze.
ale kiedy uruchomię ten kod,
def gen(x):
def f():
x += 1
return x
return f
print(gen(1)())
Mam błąd, który pokazuje, że
UnboundLocalError: lokalna zmienna "x" przywoływana przed przypisaniem
co się z tym stało? i jak zrozumieć zamknięcie python3.
Odpowiedzi:
2 dla odpowiedzi № 1def gen(x):
def f():
nonlocal x # add this line
x += 1
return x
return f
print(gen(1)())