代码记录
使用imp重载已经导入的模块
imp
模块提供了一个接口,用于实现导入语句的机制.
import moduleA
import imp
imp.reload(moduleA) # 对moduleA重载
重新加载一个先前导入的模块. 参数必须是一个模块对象,所以它必须在之前被成功导入. 如果你用一个外部编辑器编辑了模块的源文件,并且想在不离开 Python 解释器的情况下尝试新的版本,那么这很有用. 返回值是模块对象 (与模块参数相同).
当 reload(module) 被执行时:
- Python 模块的代码被重新编译,模块级的代码被重新执行,定义了一组新的对象,这些对象被绑定到模块字典中的名字。扩展模块的 init 函数不会被第二次调用。
- 就像 Python 中的所有其它对象一样,旧的对象只有在它们的引用计数下降到零时才会被回收。
- 模块命名空间中的名字被更新以指向任何新的或改变了的对象。
- 其他对旧对象的引用 (比如模块外部的名字) 不会被反弹到新对象上,如果需要的话,必须在它们出现的每个名字空间中更新。