不同编程语言的副作用

问题描述 投票:0回答:1

我正在研究副作用,用于不同的编程语言。

例如,在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 c++ side-effects
1个回答
0
投票

要使函数在Python中正常工作,您需要添加global x。这是更新的版本:

x = 1

def f(y):
    global x
    x = x + y
    return x

print(f(1))
© www.soinside.com 2019 - 2024. All rights reserved.