def some_func(a):
def access_a():
print(a)
access_a()
Run Code Online (Sandbox Code Playgroud)
输出 的值a。但是,如果我想像这样更改a嵌套函数:
def some_func(a):
def change_a():
a += 1
print(a)
change_a()
Run Code Online (Sandbox Code Playgroud)
它引发UnboundLocalError异常。
我知道a是一个非局部变量,但为什么我可以在不声明的情况下访问它nonlocal a?