以下脚本生成“赋值前引用的局部变量'var'”错误:
def func1():
var = var + 1
var = 1
func1()
您如何建议更正代码?为什么在调用函数之前在脚本中声明变量时会发生此错误?
答案 0 :(得分:4)
您可以在其他函数中使用全局变量,方法是在修改它的每个函数中将其声明为全局变量:
>>> var = 2
>>> def func():
... global var
... var = var+1
... return var
...
>>> func()
3
OP编辑后的问题: 如果在定义函数后移动变量,则需要将其作为参数传递给函数。
>>> def func(var):
... var = var+1
... return var
...
>>> var = 2
>>> func(var)
3
答案 1 :(得分:0)
函数有自己的范围,与主程序分开。因此,尽管您已在主程序中定义了var,但func1()和func2()并不知道。要修复错误,您需要将参数传递给两个函数,然后像这样返回新值:
def func1(var):
var = var + 1
return var
var = 1
var = func1(var)