gpt4 book ai didi

python - 更改 Python 中的全局变量

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:35 24 4
gpt4 key购买 nike

我想从 Python 2.7 中的函数修改全局变量

x = 0
def func():
global x
x = 2

如果我在解释器中加载此代码,然后运行 ​​func(),x 仍为 0。如何在函数内修改 x 的值?

编辑:这是解释器和源代码的屏幕截图。我不确定为什么它对其他人有效,但对我无效。 http://img18.imageshack.us/img18/9567/screenshotfrom201304222.png

最佳答案

这是一个非常有趣的情况。当我使用 from mytest import * 从解释器运行您的代码时,我遇到了同样的问题:

>>> from mytest import *
>>> x
0
>>> func()
>>> x
0

但是,当我刚刚导入 mytest 并从那里运行它时:

>>> import mytest
>>> mytest.x
0
>>> mytest.func()
>>> mytest.x
2

结果很好!我相信,原因来自 http://docs.python.org/2/reference/simple_stmts.html#the-global-statement 中的一行。 :

Names listed in a global statement must not be defined as formal parameters or in a for loop control target, class definition, function definition, or import statement.

看起来因为它是导入语句中的一个参数(通过导入全部),所以 global 遇到了问题。您需要import *,还是可以直接导入整个模块?

关于python - 更改 Python 中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com