在 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)

相关文章