我對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