对于Python的可变范围系统是如何工作的,我有点困惑。假设我遇到这样的情况:
a = 10
def test():
print(a)
一切都如我所料。Python首先查找局部变量a
,找不到它,然后搜索全局变量。你知道吗
但是,在这种情况下:
a = 10
def test():
print(a)
a += 1
print(a)
Python抛出一个UnboundLocalError异常,该异常显然源自第3行(print(a)
)。在我看来,至少这一行没有什么变化,我不明白为什么会有例外。你知道吗
Tags:
因为python没有变量声明,所以函数范围内的每个变量赋值都被认为是局部的。因此,必须始终指定该变量是全局变量:
相关问题 更多 >
编程相关推荐