在.py文件之间定义全局变量的正确方法是什么

时间:2019-02-07 13:35:56

标签: python variables scope

我有一个包含多个.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

1 个答案:

答案 0 :(得分:1)

由于模块已经导入,因此再次运行代码时不会检测到更改。

要强制重新导入python,可以使用以下函数:

import importlib
importlib.reload(con)

# After that
var2 = con.var
print(var2)