Python 如何重新加载使用 from module import * 导入的python模块

Python 如何重新加载使用 from module import * 导入的python模块

在本文中,我们将介绍如何重新加载使用 from module import * 导入的python模块。在Python中,我们通常使用import语句来导入模块,但有时我们可能需要重新加载一个已导入的模块,特别是当我们在交互式环境中进行开发和调试时。但是,使用 from module import * 导入模块会导致我们无法直接使用reload()函数来重新加载它。下面我们将介绍两种方法来重新加载这样导入的模块。

阅读更多:Python 教程

方法一:使用imp.reload()函数

Python 3.4以前的版本,可以使用imp模块的reload()函数来重新加载模块。该函数接受一个模块对象作为参数,并返回重新加载后的模块对象。

下面我们以一个示例来演示如何使用imp.reload()函数重新加载模块。

首先,我们创建一个名为example_module.py的模块文件,其中包含一个名为greet()的函数:

# example_module.py
def greet():
    print("Hello, world!")
Python

然后,在Python交互式环境中,我们可以使用 from module import * 导入模块,并调用其中的函数:

>>> from example_module import *
>>> greet()
Hello, world!
Python

如果我们更新了example_module.py文件中的代码,并希望在交互式环境中重新加载该模块,我们可以使用imp.reload()函数来实现:

>>> import imp
>>> imp.reload(example_module)
<module 'example_module' from 'path/example_module.py'>
Python

现在,我们再次调用greet()函数,将会看到更新后的输出。

请注意,使用该方法重新加载模块时,需要保证要重新加载的模块已经成功导入过,否则会出现NameError

方法二:使用importlib.reload()函数

Python 3.4及以上版本,importlib模块提供了reload()函数来重新加载模块。该函数的用法与imp.reload()函数相似。

下面我们以一个示例来演示如何使用 importlib.reload() 函数重新加载模块。

我们使用与上面相同的示例模块文件example_module.py,并在交互式环境中导入模块并调用函数:

>>> from example_module import *
>>> greet()
Hello, world!
Python

如果我们更新了example_module.py文件中的代码,并希望重新加载该模块,在Python 3.4及以上版本中,我们可以使用importlib.reload()函数来实现:

>>> import importlib
>>> importlib.reload(example_module)
<module 'example_module' from 'path/example_module.py'>
Python

现在,再次调用greet()函数,将会看到更新后的输出。

imp.reload()类似,使用importlib.reload()重新加载模块时也需要保证模块已经成功导入过,否则会出现NameError

总结

本文介绍了重新加载使用 from module import * 导入的python模块的两种方法。使用imp.reload()函数适用于Python 3.4及以下版本,而使用importlib.reload()函数适用于Python 3.4及以上版本。我们可以根据自己的Python版本选择合适的方法来重新加载模块,以便在交互式环境中进行开发和调试。希望本文对你有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册