gpt4 book ai didi

python3-不使用更新的全局变量值,而是使用旧值

转载 作者:太空宇宙 更新时间:2023-11-04 09:42:46 24 4
gpt4 key购买 nike

我是 python 的新手,我试图在一个导入的模块中更新一个变量,比如 x,然后尝试在其他变量(比如 y)中使用更新后的变量 x,但是 y 使用 x 的旧值而不是新值值(value)。请帮助提供一些使其工作的指示!

我的意图是使用一个 py 文件来列出我可以在其他 py 文件中使用它们的所有全局变量。我可以更新一个全局变量并使用它,但不确定如何在其他变量中使用更新后的全局变量。

示例代码:

a.py:

var1 = 0
var2 = var1 + 1

b.py:

import a

def update_var():
a.var1 = 10
print("Updated var1 is {}".format(a.var1))
print("var2 is {}".format(a.var2))

if __name__ == "__main__":
update_var()

输出:

Updated var1 is 10
var2 is 1

预期输出:

因为我正在将 var1 更新为 10,所以我希望在 var2 中使用更新后的值

Updated var1 is 10
var2 is 11

最佳答案

Python 不是这样工作的。当您导入 一个模块时,模块中的代码就会被执行。在您的情况下,这意味着定义了两个变量:a.var1 的值为 0a.var2 的值为 1。如果您随后修改 a.var1,您不会影响 a.var2,它的值是在您导入模块时定义的,除非您明确更改,否则它不会更改

关于python3-不使用更新的全局变量值,而是使用旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51025860/

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