在 Python 中重新加载模块?


reload() 用于重新加载之前导入的模块或已加载的模块。这在交互式会话中反复运行测试脚本的情况下非常有用,因为它始终使用我们正在开发的模块的第一个版本,即使我们已经更改了代码。在这种情况下,我们需要确保模块已重新加载。传递给 reload() 的参数必须是之前成功导入的模块对象。

执行 reload() 时,需要了解以下几点:

  • Python 模块的代码将被重新编译,并且模块级代码将被重新执行,定义一组新的对象,这些对象通过重用最初加载模块的加载器绑定到模块字典中的名称。但是,模块的初始化函数不会再次加载。

  • 只有在旧对象的引用计数降至零后,才会回收旧对象。

  • 如果存在任何更改,模块命名空间中的名称将更改为新对象。

  • 旧对象的其它引用(例如模块外部的名称)不一定指向新对象,如果需要,必须在每个出现的命名空间中更新它们。

如何加载模块

让我们首先看看如何在 Python 中加载模块。使用 `import` 语句加载:

import importlib

如何重新加载模块

reload() 方法用于重新加载模块。传递给 reload() 的参数必须是之前成功导入的模块对象。

import importlib
importlib.reload(module)

示例

我们正在重新加载 `importlib` 模块:

import sys
import importlib
importlib.reload(sys)

更新于:2022年8月16日

18K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告