我有一个包含多个.py文件的Python项目。一个文件应该是“控制”文件,可以在其中更改参数。其他文件应从此控制文件接收输入,并返回不同的输出。
如果我使用的是新内核(我在Anaconda中使用Spyder),我的代码将按预期运行,但是如果更改控制文件中的参数,则运行一遍后,并非所有后续变量都得到更新。
我已经搜索了stackoverflow和google,但正在努力寻找实现这一目标的“正确方法”。在实际情况下,还有更多具有更多相互依赖性的文件,但我将问题归结为以下简单示例。
例如,control.py:
var = 42
file.py:
import control.py as con
var2 = con.var
print(var2)
第一次运行file.py会按预期打印42
。但是如果在control.py中,我更改为
var = 43
,
保存,然后再次运行file.py,我收到了
42
在这种情况下,我希望file.py提供43
。
答案 0 :(得分:1)
由于模块已经导入,因此再次运行代码时不会检测到更改。
要强制重新导入python,可以使用以下函数:
import importlib
importlib.reload(con)
# After that
var2 = con.var
print(var2)