在 Python 中递增全局范围的整数变量



我正在尝试从另一个函数范围内更改全局值x,如以下代码所示,

x = 1
def add_one(x):
    x += 1

然后我在 Python 的交互式终端上执行语句序列,如下所示。

>>> x
1
>>> x += 1
>>> x
2
>>> add_one(x)
>>> x
2

为什么x仍然是 2 而不是 3?

因为x局部的(所有函数参数都是),而不是全局的,并且整数是不可变的。

所以x += 1x = x + 1相同,产生一个新的整数对象,x被反弹到那个对象。

您可以在函数中x全局标记:

def add_one():
    global x
    x += 1

在这里传递x作为论据是没有意义的。

相关内容

  • 没有找到相关文章

最新更新