为什么这在python中不起作用?我可以访问封闭范围(这里是全局范围),当没有其他对同一变量的引用时,但是当它存在时却无法访问。
解释器在变量定义之前是否先查看函数,发现它是假设它只是一个尚未赋值的局部变量?这里翻译的运行顺序是什么?
> a = 5
> a
Out[3]:
5
> def closure():
print(a)
> closure()
5
> def closure():
print(a)
a = "another"
return a
> closure()
UnboundLocalError: local variable 'a' referenced before assignment
答案 0 :(得分:0)
将global a
添加到函数的第一行。