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

标签 python variables scope

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

相关文章:

python - Keras,循环输出的成本函数?

java - java中的字符串或整数变量监听器?

javascript - 如何将变量从 JavaScript 函数发送到文本框?

javascript - jQuery 范围(?)问题与最小案例演示

python - 在 python 中创建目录

python - 从字典内部调用 IntEnum 类

python - 基于请求对象创建模型实例的方法

c++ - 一个静态变量到多个拷贝

javascript - 嵌套 block 作用域中的函数声明

javascript - 是否有等效于 `window` 的 es6 模块范围?