num = 0
def cal():
num += 1
print(num)
cal()
Python3下,运行以上代码出错,错误为:
UnboundLocalError: local variable 'num' referenced before assignment
Python的局部变量在没有被赋值之前被引用了
不明白,然后Google了一下,说是Python的局部变量问题,Python在函数内部会把变量默认定义为局部变量。
解决办法:
在函数内部把num声明为全局变量。
num = 0
def cal():
global num
num += 1
print(num)
cal()