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之模块的加载
Oct 24 Python
Python标准异常和异常处理详解
Feb 02 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
python3+PyQt5实现柱状图
Apr 24 Python
Tesserocr库的正确安装方式
Oct 19 Python
python实现给scatter设置颜色渐变条colorbar的方法
Dec 13 Python
python中partial()基础用法说明
Dec 30 Python
在python中利用opencv简单做图片比对的方法
Jan 24 Python
Python 继承,重写,super()调用父类方法操作示例
Sep 29 Python
解析Python3中的Import
Oct 13 Python
Python函数中的不定长参数相关知识总结
Jun 24 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
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
js实现简单模态框实例
2018/11/16 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
pyside写ui界面入门示例
2014/01/22 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
QML使用Python的函数过程解析
2019/09/26 Python
Python logging模块原理解析及应用
2020/08/13 Python
中专毕业生自荐信范文
2013/11/28 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
警示教育活动总结
2014/05/05 职场文书
学术会议通知范文
2015/04/15 职场文书
陪护人员误工证明
2015/06/24 职场文书
人民币使用说明书
2019/04/17 职场文书