我有一个包含多个 .py 文件的 Python 项目。一个文件应该是“控制”文件,可以在其中更改参数。其他文件应该接收来自该控制文件的输入,并返回不同的输出。
如果我使用新内核(我在 Anaconda 中使用 Spyder),我的代码会按预期执行,但在一次运行后,如果我更改控制文件中的参数,则并非所有后续变量都会更新。
我已经搜索了 stackoverflow 和 google,但正在努力寻找“正确的方法”来完成此任务。在实际情况中,有更多的文件具有更多的相互依赖性,但我已将问题归结为以下简单示例。
例如control.py:
var = 42
文件.py:
import control.py as con
var2 = con.var
print(var2)
第一次运行 file.py 会按预期打印 42
。但如果在 control.py 内,我改为
var = 43
,
保存,然后再次运行 file.py,我收到
42
我希望 file.py 在此实例中给出 43
。
最佳答案
由于模块已经导入,因此当您再次运行代码时不会检测到更改。
要强制 python 重新导入,您可以使用以下函数:
import importlib
importlib.reload(con)
# After that
var2 = con.var
print(var2)
关于python - 在 .py 文件之间定义全局变量的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54574586/