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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
简单的Python抓taobao图片爬虫
Oct 26 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
详解用python自制微信机器人,定时发送天气预报
Mar 25 Python
Python中dict和set的用法讲解
Mar 28 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
Python 实现数组相减示例
Dec 27 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
pytorch  网络参数 weight bias 初始化详解
Jun 24 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
Python趣味挑战之教你用pygame画进度条
May 31 Python
Python爬虫实战之爬取携程评论
Jun 02 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解答方法
2012/02/04 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
python调试神器PySnooper的使用
2019/07/03 Python
python openpyxl使用方法详解
2019/07/18 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
书香校园活动方案
2014/02/28 职场文书
长城英文导游词
2015/01/30 职场文书
2015年国培研修感言
2015/08/01 职场文书
python 爬取华为应用市场评论
2021/05/29 Python
解析目标检测之IoU
2021/06/26 Python
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
在js中修改html body的样式
2021/11/11 Javascript
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python