在 Python 中重新加载或取消导入模块

Manav Narula 2023年1月30日 2021年2月28日
  1. 在 Python 中取消导入模块
  2. 在 Python 中重新加载一个模块
在 Python 中重新加载或取消导入模块

模块允许我们在 Python 文件中存储不同函数和类的定义,然后这些文件可以在其他文件中使用。pandasNumPyscipyMatplotlib 是 Python 中使用最广泛的模块。

我们也可以在 Python 中创建自己的模块,这样可以提高模块化程度,简化大型程序。

在 Python 中取消导入模块

我们使用 import 命令将一个特定的模块加载到 Python 的内存中。我们不能取消导入一个模块,因为 Python 将它存储在缓存中,但我们可以使用一些命令,并尝试取消引用这些模块,以便我们在程序中无法访问它。然而,这些方法有时可能会失败,所以请小心。

第一个是 del 命令。它用于删除 Python 中的各种对象。下面显示了使用此命令删除对模块的访问。

import module_name
del module_name

sys.modules 是一个字典,可以用 sys 模块查看,用来存储一个函数和模块的引用。我们可以使用 del 命令从这个字典中删除所需的模块,删除它的每一个引用。要删除那些被引用次数多的模块是很困难的,所以在使用时需要小心。这种方法可能会产生不必要的结果,所以请谨慎。

if 'myModule' in sys.modules:
    del sys.modules["myModule"]

在 Python 中重新加载一个模块

如果我们对一个模块进行了修改,并且希望在不重新启动程序的情况下实现这些修改,我们可以使用 reload() 函数来重新加载所需的模块。

reload() 函数在 Python 中有着悠久的历史。直到 Python 2.7,它都是一个内置函数。

在 Python 3.0 到 Python 3.3 中,它存在于 imp 库中,后来被弃用,改为 importlib 模块,它包含了实现 Python 文件中代码导入机制的函数。

下面的代码展示了如何使用 reload() 函数。

import importlib
reload(module_name)
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Module