x = 0
def outer():
x = 1
def inner():
nonlocal x
x = 2
def vnat():
nonlocal x
x = 5
print('vnat:', x)
vnat()
print('inner:', x)
inner()
print('outer:', x)
outer()
print('global:', x)
结果如下:
vnat: 5
inner: 5
outer: 5
global: 0
为什么def outer()
取def vnat()
(5) 的值?以及如何使用[2]def outer()
的值指定?nonlocal x
def inner()
我需要的输出:
vnat: 5
inner: 5
outer: 2
global: 0