我对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)
)显然始发。对我来说,似乎至少在这一行没有任何改变,我不明白为什么有一个例外。
请发布 – therealprashant
@therealprashant之前正常搜索说谁回答这一个。 – vaultah
@vaultah有时候确实遇到了一些需要被回答的固执的人:) – therealprashant