我如何重新加载ipython中的类定义

因为我通常使用ipython来处理正在开发的代码,所以我遇到了将类导入到ipython后更改类的代码的情况。 我想在不重新启动ipython的情况下重新加载新的类定义。 问题是ipython中的重载功能仅适用于模块。

我搜索了这个问题的解决方案,并发现了一个前面的线程:如何重新加载一个类在Python shell?

但是,我遵循那里的方法,但没有奏效。 我认为它在该线程中起作用的原因是类名碰巧与模块名相同,所以它可以在sys.modules中找到,因此可以删除。 当类名称与模块名称不同时,该方法无法工作。

我想知道是否有解决这个问题。 谢谢!


是的,有一个名为'autoreload'的IPython扩展就是这种事情。 以下是关于如何使用它的文档。


您也可以重新加载单个模块

例如:

#reload every time  
import my_module
reload(my_module)

#reload a module recursively      
import deep_reload_my_module
dreload(deep_reload_my_module)
链接地址: http://www.djcxy.com/p/62825.html

上一篇: How can I reload a class definition in ipython

下一篇: c++