全局变量与局部变量
最近在写python程序遇到的小问题之前也没有怎么注意:
提醒自己一下
UnboundLocalError: local variable ‘value’ referenced before assignment
在函数外部已经定义了变量n,在函数内部对该变量进行运算,运行时会遇到了这样的错误:
主要是因为没有让解释器清楚变量是全局变量还是局部变量。
如果在函数外部定义了全局变量,并且在函数内部对该变量进行定义是需要对该变量进行再次解释
例如
def test():
if value == 1:
a += 1
return a
value = a = 1
b = test()
肯定会报错的
def test():
global a
if value == 1:
a += 1
return a
value = a = 1
b = test()
或者
def test():
a = 1
if value == 1:
a += 1
return a
value = a = 1
b = test()
第二种虽然不会报错
但是外面的变量和函数的变量没有任何关系
内部函数执行完是2 内部还是1