Python importlib模块重载使用方法详解
作者:py鱼 时间:2021-02-28 18:12:21
模块介绍
Python提供了importlib包作为标准库的一部分。目的就是提供Python中import语句的实现(以及__import__函数)。另外,importlib允许程序员创建他们自定义的对象,可用于引入过程(也称为importer)。
什么是imp?
另外有一个叫做imp的模块,它提供给Python import语句机制的接口。这个模块在Python 3.4中被否决,目的就是为了只使用importlib。
了解:模块的重载
考虑到性能的原因,每个模块只被导入一次,放入字典sys.module中,如果你改变了模块的内容,你必须重启程序,python不支持重新加载或卸载之前导入的模块,
有的同学可能会想到直接从sys.module中删除一个模块不就可以卸载了吗,注意了,你删了sys.module中的模块对象仍然可能被其他程序的组件所引用,因而不会被清楚。
特别的对于我们引用了这个模块中的一个类,用这个类产生了很多对象,因而这些对象都有关于这个模块的引用。
如果只是你想交互测试的一个模块,使用 importlib.reload(), e.g. import importlib; importlib.reload(modulename),这只能用于测试环境。
例子
aa.py
def func1():
print('func1')
test.py
import time,importlib
import aa
time.sleep(10)
# importlib.reload(aa) 用于模块重新加载
aa.func1()
在10秒的等待时间里,修改aa.py中func1的内容,等待test.py的结果。
打开importlib注释,重新测试
来源:https://www.cnblogs.com/pyyu/p/8493670.html
标签:Python,importlib,模块,重载


猜你喜欢
详解Python做一个名片管理系统
2021-03-17 05:56:17
Python PaddlePaddle机器学习之求解线性模型
2023-04-19 08:35:14
opencv实现简单人脸识别
2021-08-26 07:49:06

Python 短视频爬虫教程
2022-02-13 00:17:33

python区块链地址的简版实现
2021-04-02 14:04:21

Keras函数式(functional)API的使用方式
2023-09-19 05:52:15

使用anaconda的pip安装第三方python包的操作步骤
2022-11-20 04:05:22
python简单验证码识别的实现过程
2021-09-12 12:40:55

Mac OS下PHP环境搭建及PHP操作MySQL常用方法小结
2024-05-08 10:16:31

解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2022-05-22 21:51:51
python @classmethod 的使用场合详解
2023-08-02 20:50:35
详解vue3.0 的 Composition API 的一种使用方法
2024-04-28 09:23:48
求某数以内的所有质数的js算法
2008-01-06 15:49:00
MySQL 请选择合适的列
2024-01-23 05:33:31

python绘制带有色块的折线图
2022-08-11 07:01:58

如何把Oracle 数据库从 RAC 集群迁移到单机环境
2024-01-28 06:29:05
Python统计词频并绘制图片(附完整代码)
2022-01-01 09:28:24

浅谈pytorch中torch.max和F.softmax函数的维度解释
2023-01-07 15:08:01

Node.js中Bootstrap-table的两种分页的实现方法
2024-05-11 10:58:21
正确理解SQL Server四类数据仓库建模方法
2008-12-23 15:20:00