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进程间通信之命名管道
Aug 28 Python
python书籍信息爬虫实例
Mar 19 Python
解决pandas read_csv 读取中文列标题文件报错的问题
Jun 15 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
Python中print和return的作用及区别解析
May 05 Python
Python模块、包(Package)概念与用法分析
May 31 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
Jan 25 Python
使用 Python 在京东上抢口罩的思路详解
Feb 27 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
Pytorch之扩充tensor的操作
Mar 04 Python
python flappy bird小游戏分步实现流程
Feb 15 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
使用PHP模拟HTTP认证
2006/10/09 PHP
桌面中心(二)数据库写入
2006/10/09 PHP
php在字符串中查找另一个字符串
2008/11/19 PHP
PHP 引用文件技巧
2010/03/02 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
php计算title标题相似比的方法
2015/07/29 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
树结构之JavaScript
2017/01/24 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
Python-基础-入门 简介
2014/08/09 Python
Tensorflow之Saver的用法详解
2018/04/23 Python
Python构建图像分类识别器的方法
2019/01/12 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
丧事主持词大全
2014/04/02 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
2015年科普工作总结
2015/07/23 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python