python 动态加载的实现方法


Posted in Python onDecember 22, 2017

脚本语言都有一个优点,就是动态加载。lua语言有这个优点,python也有这个特性。说简单点就是,如果开发者发现自己的代码有bug,那么他可以在不关闭原来代码的基础之上,动态替换模块。替换方法一般用reload来完成。

1、reload的基本原理

reload主要做了两个动作,删除原来的模块,添加新的模块

2、reload的等效代码

del sys.modules[module_name]
__import__(module_name)

3、reload使用的时候要注意什么

3.1 reload的入口参数是module,不是字符串,即

import sys
module = sys.modules[module_name]

3.2 重载的文件只是对应模块的__init__.py文件,如果是其他文件,则不会生效

3.3 如果是目录中其他文件,则需要分别重新加载,比如

import sys
del sys.modules['module_name:sub_file']
__import__('module_name:sub_file')

或者是

reload(sys.modules['module_name:sub_file'])

总结

以上所述是小编给大家介绍的python 动态加载的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木的支持!

Python 相关文章推荐
Python smallseg分词用法实例分析
May 28 Python
Django小白教程之Django用户注册与登录
Apr 22 Python
结合Python的SimpleHTTPServer源码来解析socket通信
Jun 27 Python
python操作redis方法总结
Jun 06 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
python 判断linux进程,并杀死进程的实现方法
Jul 01 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
Django中的AutoField字段使用
May 18 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
Python决策树分类算法学习
Dec 22 #Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 #Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 #Python
Python机器学习之决策树算法
Dec 22 #Python
python+selenium实现登录账户后自动点击的示例
Dec 22 #Python
python实现决策树
Dec 21 #Python
python利用sklearn包编写决策树源代码
Dec 21 #Python
You might like
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
JavaScript及jquey实现多个数组的合并操作
2014/09/06 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
基于javascript实现彩票随机数生成(简单版)
2020/04/17 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
Python列表切片用法示例
2017/04/19 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
Django models filter筛选条件详解
2020/03/16 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
2015年前台文员工作总结
2015/05/18 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
围城读书笔记
2015/06/26 职场文书
酒店员工管理制度
2015/08/05 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang
springboot入门 之profile设置方式
2022/04/04 Java/Android