这里详细解释了重新加载:如何卸载(重新加载)Python模块? 简单点说: 有一些有效的用例,例如Django开发服务器。但总体而言,重新加载模块存在太多陷阱,不太实用。 两个最大的问题是: 为了完全卸载旧对象,必须确保没有其他模块或对象保留对它们的引用(通常是不可能的)。如果在此失败,可能会导致难以跟踪的内存泄漏或意外行为。 没有一般方法可以重新加载带有C扩展名的模块。有些可以安全地重新加载;有些看起来可以安全地重新加载,但可能会泄漏,并且有些可能会崩溃您的解释器或产生奇怪的错误。
重新加载模块通常是在开发过程中进行的,这样您可以继续运行同一解释器会话,但可以获取您对模块所做的更改。实际上,在视频中已经有一个示例解释了这一点,大约在第11分钟左右。但是,如果您发现自己正在编写依赖于模块在运行时更改和重新加载的实际功能代码,则应非常确保自己知道自己在做什么,并首先考虑其他选项。