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装饰器验证配置文件示例
Feb 24 Python
python使用pil生成缩略图的方法
Mar 26 Python
Python聚类算法之基本K均值实例详解
Nov 20 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
python 移除字符串尾部的数字方法
Jul 17 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
Python如何将函数值赋给变量
Apr 28 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 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读取30天之内的根据算法排序的代码
2008/04/06 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
Android中资源文件(非代码部分)的使用概览
2012/12/18 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
微信小程序通过一个json实现分享朋友圈图片
2019/09/03 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
python进阶教程之文本文件的读取和写入
2014/08/29 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
医学院毕业生自荐信范文
2014/03/06 职场文书
学徒工职责
2014/03/06 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
婚礼父母致辞
2015/07/28 职场文书