我正在研究副作用,用于不同的编程语言。
例如,在C ++中,如果我定义
x = 1;
int f(int y)
{
x = x + y;
return x;
}
并执行f(1)
,使x
的新值等于2。
在python中,我当然可以执行定义相同的功能
x = 1
def f(y):
x = x + y
return x
但是在这种情况下执行f(1)
时,出现错误“分配前引用的局部变量'x'。”
为什么对于相同的功能和执行,但使用不同的编程语言,我会有不同的结果?
要使函数在Python中正常工作,您需要添加global x
。这是更新的版本:
x = 1
def f(y):
global x
x = x + y
return x
print(f(1))