Python变量scop的意外行为

2024-10-02 22:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

对于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: test系统def情况print局部变量全局变量unboundlocalerror