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 17 Python
Python定时执行之Timer用法示例
May 27 Python
Python的Django框架中forms表单类的使用方法详解
Jun 21 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
Jul 11 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
Python打包方法Pyinstaller的使用
Oct 09 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
python实现爬山算法的思路详解
Apr 09 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 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
一个简单计数器的源代码
2006/10/09 PHP
初识PHP
2014/09/28 PHP
PHP 快速排序算法详解
2014/11/10 PHP
yii的CURD操作实例详解
2014/12/04 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
JS 判断代码全收集
2009/04/28 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
express如何使用session与cookie的方法
2018/01/30 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
python打开文件并获取文件相关属性的方法
2015/04/23 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
sort命令的作用和用法
2013/08/25 面试题
关于工资低的辞职信
2014/01/14 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
解除劳动合同证明书
2014/09/26 职场文书
郭明义电影观后感
2015/06/08 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
先进个人主要事迹范文
2015/11/04 职场文书