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
原因:函數中聲明重名變量( 跟全局變量重名),對全局變量不會產生影響