因此,假设我有一个Shell脚本,该脚本在包含以下内容的输出上生成v.py
v = some-float
我正在通过
from v import v
在main.py脚本中访问它但是后来主脚本再次切换生成过程,并且v.py中的变量被更新,但是主脚本的变量
v
没有更新。为了使主脚本正常工作,我需要在脚本运行时从v.py更新变量
我试过
importlib.reload(v)
-没用我对python还是很陌生,还不太了解
最佳答案
假设您正在使用python 3. *,则v必须是一个模块,因此导入它的方式将变为以下示例。
import v
import importlib
print(v.v)
with open('v.py', 'w') as f:
f.write('v = 20.0')
importlib.reload(v)
print(v.v)
另请注意importlib的文档
“重新加载模块时,将保留其字典(包含模块的全局变量)。名称的重新定义将覆盖旧的定义,因此通常这不是问题。”
尽管我们的最小示例可行,但是对于更复杂的情况,这是要牢记的。