a=5
def sum():
a = a+1
print(a)
sum()
结果:
UnboundLocalError: local variable 'a' referenced before assignment
原因:
a为全局变量,a=a+1相当于创建了一个局部变量a,局部变量a还未赋值就被调用(a+1),导致报错
解决办法:
1.
使用global将a变为全局变量
a=5
def sum():
global a
a = a+1
print(a)
sum()
print(a)
结果:
6
6
2.
局部变量换一个名字,不与全局变量a重名
a=5
def sum():
b = a+1
print(b)
sum()
print(a)
结果:
6
5