n = 0
def func():
n = 1
def func2():
# n = 2
def func3():
nonlocal n
n+=1
func3()
print(n)
func2()
print(n)
func()
print(n)
2
2
0
上面这段引用nonlocal的代码,说明了nonlocal是在查找内部函数的外部函数的变量,并且不会找到全局变量(如果外部函数没有该参数,而全局变量中有,也不会找到全局变量,而是会报错)