inner()
can access the non-local variable x
in middle()
with nonlocal x
:
def outer():
x = 0
def middle():
x = 5 # <- Here
def inner():
nonlocal x # Here
x += 1
print(x) # 6
inner()
middle()
outer()
Now, how can inner()
access the non-local variable x
in outer()
?
def outer():
x = 0 # <- Here
def middle():
x = 5
def inner():
x += 1
print(x) # How to print 1?
inner()
middle()
outer()