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启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
Apr 09 Python
20招让你的Python飞起来!
Sep 27 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
关于python多重赋值的小问题
Apr 17 Python
Python登录系统界面实现详解
Jun 25 Python
Django MEDIA的配置及用法详解
Jul 25 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
Python算法的时间复杂度和空间复杂度(实例解析)
Nov 19 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 Python
python全局变量引用与修改过程解析
Jan 07 Python
简单介绍Python的第三方库yaml
Jun 18 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使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
JQuery animate动画应用示例
2019/05/14 jQuery
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
python 获取等间隔的数组实例
2019/07/04 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
介绍一下gcc特性
2015/10/31 面试题
电影建党伟业观后感
2015/06/01 职场文书