10.6 重新加载模块
问题
你想重新加载已经加载的模块,因为你对其源码进行了修改。
解决方案
使用imp.reload()
来重新加载先前加载的模块【3.4+已弃用,详看自己的笔记】。举个例子:
讨论
重新加载模块在开发和调试过程中常常很有用。但在生产环境中的代码使用会不安全,因为它并不总是像您期望的那样工作。
reload()擦除了模块底层字典的内容,并通过重新执行模块的源代码来刷新它。模块对象本身的身份保持不变。因此,该操作在程序中所有已经被导入了的地方更新了模块。
尽管如此,reload()没有更新像 from module import name
这样使用import语句导入的定义。
Last updated
Was this helpful?