因此,假设我有一个Shell脚本,该脚本在包含
的输出上生成v.pyv = some-float
我正在通过from v import v
在main.py脚本中访问它
但是稍后,主脚本再次切换生成过程,并且v.py中的变量得到更新,但是主脚本的变量v
没有更新。
要使主脚本正常工作,我需要在脚本运行时从v.py更新变量
我尝试过importlib.reload(v)
-没用
我还是python的新手,并不完全了解它
答案 0 :(得分:1)
假设您使用的是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
的文档“重新加载模块时,将保留其字典(包含模块的全局变量)。名称的重新定义将覆盖旧的定义,因此通常没有问题。”
尽管我们的最小示例有效,但是对于更复杂的情况,这是要牢记的。