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 列表排序方法reverse、sort、sorted详解
Jan 22 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Python基于多线程实现ping扫描功能示例
Jul 23 Python
python使用 zip 同时迭代多个序列示例
Jul 06 Python
python 字典的打印实现
Sep 26 Python
详解python常用命令行选项与环境变量
Feb 20 Python
python 中的paramiko模块简介及安装过程
Feb 29 Python
python 绘制国旗的示例
Sep 27 Python
详解python polyscope库的安装和例程
Nov 13 Python
python+openCV对视频进行截取的实现
Nov 27 Python
总结Python变量的相关知识
Jun 28 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 cookis创建实现代码
2009/03/16 PHP
php foreach、while性能比较
2009/10/15 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
2018/11/05 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
Python脚本判断 Linux 是否运行在虚拟机上
2015/04/25 Python
浅谈python多线程和队列管理shell程序
2015/08/04 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
python交换两个变量的值方法
2019/01/12 Python
使用python远程操作linux过程解析
2019/12/04 Python
pandas-resample按时间聚合实例
2019/12/27 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
python的sys.path模块路径添加方式
2020/03/09 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
项目战略合作意向书
2015/05/08 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python