python 報錯:local variable ‘XXX’ referenced before assignment

a = 1
def test():
    a = a + 1
    print(a)
test()

報錯:UnboundLocalError: local variable 'a' referenced before assignment

原因: 全局變量在函數中值被修改則變爲局部變量,局部變量a在函數中未聲明。

a = 1
def test():
    print(a+1)
test()

輸出:2

a = 1
def test():
    global a
    a = a + 1
    print(a)
test()

輸出:2 

原因:在函數中修改全局變量,使用global聲明。 

a = 1
def test():
    a = 1
    a = a + 1
    print(a)
test()
print(a)

輸出:2  1

原因:函數中聲明重名變量( 跟全局變量重名),對全局變量不會產生影響

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章