恢复/撤消/重做/刷新,交互式python会话中的“导入”[重复]
Posted
技术标签:
【中文标题】恢复/撤消/重做/刷新,交互式python会话中的“导入”[重复]【英文标题】:revert/undo/redo/refresh, an `import` in interactive python session [duplicate] 【发布时间】:2011-10-22 16:37:18 【问题描述】:可能重复:How do I unload (reload) a Python module?
是否可以在 python 中“刷新”导入的模块?用例:交互式改进模块;到目前为止,我总是完全重新启动交互式会话以重新加载我更新的源代码。
有没有更好的方法?
【问题讨论】:
对this question 的接受回答显示了如何重新加载模块(以交互方式和在脚本中工作)。 @Björn Pollex:谢谢,这正是我所需要的。 【参考方案1】:假设命名空间中已经存在一个名为 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
【讨论】:
以上是关于恢复/撤消/重做/刷新,交互式python会话中的“导入”[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Qt 5,为 QTabWidget 中的每个 QTextBrowser 撤消/重做