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的垃圾回收机制深入分析
Jul 16 Python
Python中获取对象信息的方法
Apr 27 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
Python的numpy库下的几个小函数的用法(小结)
Jul 12 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
keras实现多种分类网络的方式
Jun 11 Python
python主要用于哪些方向
Jul 05 Python
Python 忽略文件名编码的方法
Aug 01 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 06 Python
Python图片检索之以图搜图
May 31 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的开合式多级菜单程序
2006/10/09 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
JavaScript中的面向对象介绍
2012/06/30 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
Python urllib3软件包的使用说明
2020/11/18 Python
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
盛大笔试题
2016/11/05 面试题
一道输出判断型Java面试题
2014/10/01 面试题
总经理职责
2013/12/22 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript