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
原因:函数中声明重名变量( 跟全局变量重名),对全局变量不会产生影响