是否可以在python中“刷新”导入的模块?用例:交互式改进模块;直到现在,我总是完全重启交互式会话以重新加载我更新的源。
有更好的方法吗?
答案 0 :(得分:4)
假设名称空间中已存在名为foo
的模块,但您在源代码中进行了一些更改,并且希望导入新代码,请使用:
reload(foo)
这里有一个问题:如果您使用了from foo import bar
并且您在函数bar
中进行了后续更改,那么重新加载将不适合您。对于这些情况,您可能更愿意使用import foo
并致电foo.bar()
,以便reload
让您的更改立即生效。
如果您经常在这样的交互式会话中工作,那么您可能会有兴趣使用ipython并在ipy_user_conf.py
文件中添加以下行:
# For autoreloading of modules (%autoreload, %aimport)
import ipy_autoreload