在 Python 中重新加载模块?
programmingpythonserver side programming
reload() 用于重新加载先前导入的模块或已加载的模块。这在您在交互式会话期间重复运行测试脚本的情况下非常方便,它始终使用我们正在开发的模块的第一个版本,即使我们对代码进行了更改。在这种情况下,我们需要确保重新加载模块。传递给 reload() 的参数必须是之前成功导入的模块对象。
执行 reload() 时需要了解的几点 −
Python 模块的代码被重新编译,模块级代码被重新执行,通过重用最初加载模块的加载器,定义一组绑定到模块字典中名称的新对象。但是,模块的 init 函数不会再次加载。
旧对象只有在其引用计数降至零后才会被回收。
模块命名空间中的名称将更改为新对象(如果有)。
旧对象的其他引用(如模块外部的名称)不一定是指新对象,如果需要,必须在它们出现的每个命名空间中进行更新。
如何加载模块
让我们首先看看如何在 Python 中加载模块。使用 import 语句加载 −
import importlib
如何重新加载模块
reload() 方法用于重新加载模块。传递给 reload() 的参数必须是之前成功导入的模块对象。
import importlib importlib.reload(module)
示例
我们正在重新加载 importlib 模块 −
import sys import importlib importlib.reload(sys)