恢复/撤消/重做/刷新,交互式 python 会话中的“导入”

xto*_*ofl 3 python iteration import interactive

可能重复:
如何卸载(重新加载)Python 模块?

是否可以在 python 中“刷新”导入的模块?用例:交互式改进模块;到目前为止,我总是完全重新启动交互式会话以重新加载更新的源。

有没有更好的办法?

wim*_*wim 5

假设命名空间中已存在名为 的模块foo,但您对源代码进行了一些更改并且希望导入新代码,请使用:

reload(foo)
Run Code Online (Sandbox Code Playgroud)

这里有一个问题:如果您已经使用过from foo import bar并且在函数中进行了后续更改bar,那么重新加载将不起作用。对于这些情况,您可能更喜欢使用import foo和调用foo.bar(),以便reload您的更改立即生效。

如果您经常在这样的交互式会话中工作,那么您可能会对使用 ipython 感兴趣并在文件中添加以下行ipy_user_conf.py:

# For autoreloading of modules (%autoreload, %aimport)    
import ipy_autoreload
Run Code Online (Sandbox Code Playgroud)