-2

以下脚本产生“赋值前引用的局部变量 'var'”错误:

def func1():
    var = var + 1

var = 1

func1()

您如何建议更正代码?为什么在调用函数之前在脚本中声明变量时会出现此错误?

4

2 回答 2

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
于 2012-05-11T11:19:51.910 回答
0

函数有自己的作用域,与主程序分开。因此,尽管您在主程序中定义了 var,但 func1() 和 func2() 并不知道。要修复您的错误,您需要将参数传递给两个函数,然后返回新值,如下所示:

def func1(var):
    var = var + 1
    return var

var = 1

var = func1(var)
于 2012-05-11T11:20:45.610 回答