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将MongoDB里的ObjectId转换为时间戳的方法
Mar 13 Python
用Python中的wxPython实现最基本的浏览器功能
Apr 14 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
Python高级特性切片(Slice)操作详解
Sep 27 Python
浅谈pycharm出现卡顿的解决方法
Dec 03 Python
利用python和百度地图API实现数据地图标注的方法
May 13 Python
如何在Python中实现goto语句的方法
May 18 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
Python通过yagmail实现发送邮件代码解析
Oct 27 Python
python中pycryto实现数据加密
Apr 29 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调用Oracle存储过程
2006/10/09 PHP
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
php使用正则验证中文
2016/04/06 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
利用Python开发微信支付的注意事项
2016/08/19 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
Python实现点云投影到平面显示
2020/01/18 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
python excel多行合并的方法
2020/12/09 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
工会换届选举方案
2014/05/21 职场文书
图书室标语
2014/06/21 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
资金申请报告范文
2015/05/14 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python
Python实现抖音热搜定时爬取功能
2022/03/16 Python
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技