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

原因:函数中声明重名变量( 跟全局变量重名),对全局变量不会产生影响

你可能感兴趣的:(python)