Python importlib模块重载使用方法详解


Posted in Python onOctober 13, 2020

模块介绍

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注释,重新测试

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学python系列之数据处理编程实例(一)
May 22 Python
Python实现微信公众平台自定义菜单实例
Mar 20 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
flask中过滤器的使用详解
Aug 01 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 Python
python识别验证码图片实例详解
Feb 17 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
python Yaml、Json、Dict之间的转化
Oct 19 Python
如何用python写个模板引擎
Jan 14 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 #Python
Python本地及虚拟解释器配置过程解析
Oct 13 #Python
Pycharm快捷键配置详细整理
Oct 13 #Python
Django项目创建及管理实现流程详解
Oct 13 #Python
OpenCV读取与写入图片的实现
Oct 13 #Python
Django Form常用功能及代码示例
Oct 13 #Python
Python语言编写智力问答小游戏功能
Oct 13 #Python
You might like
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
firebug的一个有趣现象介绍
2011/11/30 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
详解Django中的过滤器
2015/07/16 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
Python绘制热力图示例
2019/09/27 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
Python 如何在字符串中插入变量
2020/08/01 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
html如何对span设置宽度
2019/10/30 HTML / CSS
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
什么是数组名
2012/05/10 面试题
部队学习十八大感言
2014/01/11 职场文书
政治学求职信
2014/06/03 职场文书
运动会口号8字
2014/06/07 职场文书
团日活动总结报告
2014/06/25 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
PHP判断是否是json字符串
2021/04/01 PHP
Java完整实现记事本代码
2022/06/16 Java/Android