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 相关文章推荐
pygame播放音乐的方法
May 19 Python
Python编程中对super函数的正确理解和用法解析
Jul 02 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
python tkinter图形界面代码统计工具(更新)
Sep 18 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
pytorch:torch.mm()和torch.matmul()的使用
Dec 27 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
Jan 21 Python
python安装及变量名介绍详解
Dec 12 Python
Python+unittest+requests+excel实现接口自动化测试框架
Dec 23 Python
Python实现京东抢秒杀功能
Jan 25 Python
python脚本框架webpy模板赋值实现
Nov 20 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 CURL模拟GET及POST函数代码
2010/04/25 PHP
利用PHP实现短域名互转
2013/07/05 PHP
php中的登陆login实例代码
2016/06/20 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
JS的get和set使用示例
2014/02/20 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
python删除服务器文件代码示例
2018/02/09 Python
python 判断网络连通的实现方法
2018/04/22 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
GAP欧盟网上商店:GAP EU
2016/09/13 全球购物
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
关于旷工的检讨书
2014/02/02 职场文书
文员求职信
2014/07/15 职场文书
交通事故协议书范文
2014/10/23 职场文书
捐助倡议书
2015/01/19 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL