在下面的Python代码中,我得到了一个UnboundLocalError.据我所知,局部函数共享包含函数的局部变量,但这似乎不是这里的情况.我认识到a在这种情况下这是一个不可变的值,但这应该不是问题.
def outer():
a = 0
def inner():
a += 1
inner()
outer()
Run Code Online (Sandbox Code Playgroud)
看起来内部函数已经收到了父函数中所有引用的副本,因为UnboundLocalError如果值的值a被包装在一个可变类型中,我就不会得到异常.
有人能够澄清这里的行为,并指出相应的Python文档吗?