我对python完全陌生,我只是试一试。有些事情让我困惑了好几个小时,直到我终于做出这个小测试。脚本:更新脚本
我有2个脚本,a.py和b.py
#a.py
num = 3
#b.py
import a
print(a.num)
当b.py是跑步,这种打印3.但如果我num的值更改为任何其他数,输出是仍然3.
如何重新保存/更新我的脚本文件?
我对python完全陌生,我只是试一试。有些事情让我困惑了好几个小时,直到我终于做出这个小测试。脚本:更新脚本
我有2个脚本,a.py和b.py
#a.py
num = 3
#b.py
import a
print(a.num)
当b.py是跑步,这种打印3.但如果我num的值更改为任何其他数,输出是仍然3.
如何重新保存/更新我的脚本文件?
Python只会在第一次导入模块时读取模块文件。因此,您正在编辑的内容仍然是导入对象的旧版本。如果你想重新加载一个模块,你可以使用imp.reload
。欲了解更多信息,您可以阅读When I edit an imported module and reimport it, the changes don’t show up. Why does this happen?。
因此在我的项目开发过程中,我必须在导入的模块中包含imp.reload?并在项目完成后将其删除?这是一件麻烦事。 – tambalolo
如果你想重新加载,你必须。或者您必须终止当前的脚本,更新导入的模块并再次运行脚本。但我认为这个数字应该是一个固定的数字,你不必在文件中改变它,但当你需要逻辑时改变它。 – zhangyangyu
上面的代码只是一个示例。我正在谈论发展真正的项目。但是不要紧。 – tambalolo
要重新加载模块,请使用imp
模块中的imp.reload()
。请参阅http://docs.python.org/3/library/imp.html#imp.reload
#a.py
num = 3
#b.py
import a
print(a.num) # result is 3
a.num += 1
print(a.num) # result is 4
下次运行b.py时,结果是一样的。
因为a.num总是初始化为3,所以您可能需要更新原始a.py文件以将其他值更改为3。
但这是有线我建议不这样做。
是的,你可以保存你的文件 - 你必须在再次运行你的脚本之前做到这一点。 – danodonovan