【发布时间】:2020-08-23 06:57:12
【问题描述】:
我正在研究不同编程语言的副作用。
例如,在 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'在赋值之前引用。”
为什么对于相同的函数和执行,但使用不同的编程语言,我会得到不同的结果?与 C++ 相比,我在 Python 中会产生副作用吗?是因为编译了C++,解释了Python吗?
【问题讨论】:
-
Python 的副作用是什么?整数是不可变的,所以我看不出 Python 有什么相关性……
-
不幸的是,“为什么我有不同的结果......在不同的编程语言中”的最佳答案可能是“因为不同的语言做事不同,否则只会有一种编程语言”跨度>
-
@roganjosh 与 c++ 相比,我在 python 中有副作用吗?
-
请先花一点时间了解该错误消息的含义。你会发现你的程序是不等价的,这与副作用无关。作为新用户,也请带上tour阅读How to Ask。
-
相同的实现和执行不会有不同的结果。你有不同的实现和不同的执行。如果您刚学过语言,您会发现其中的不同。
标签: python c++ side-effects