基于Python2、Python3中reload()的不同用法介绍


Posted in Python onAugust 12, 2019

reload() 简介

作用:用于重新载入之前载入的模块

语法格式:reload(module)

参数:module为模块对象,必须已经被加载

返回值:返回模块对象

注意事项:

多次重复使用import语句时,不会重新加载被指定的模块,只是把对该模块的内存地址给引用到本地变量环境。

reload()会重新加载已加载的模块,重新编译模块,重新执行模块级代码,但是__init__函数不再重复执行,原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块;reload后还是用原来的内存地址;不支持from ... import ...格式的模块进行重新加载。

大部分模块设计为只加载一次,重新加载可能导致一些问题,因此,慎用reload()。

使用sys.modules可查看已加载的模块。

Python2

在Python2中,reload()为内置函数。

例:重设字符编码

>>>import sys
>>> sys.getdefaultencoding()      # 当前默认编码
'ascii'
>>> reload(sys)             # 使用 reload
<module 'sys' (built-in)>
>>> sys.setdefaultencoding('utf8')   # 设置编码
>>> sys.getdefaultencoding()
'utf8'
>>>

Python3

在Python3中,reload()被转移到imp模块以及importlib模块中。

Python3.4之前在imp中,Python3.4之后imp模块逐步被废弃,reload()移至importlib模块中。

>>> import sys
>>> reload(sys)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'reload' is not defined
>>> from imp import reload
__main__:1: DeprecationWarning: the imp module is deprecated in favour of importlib;
 see the module's documentation for alternative uses
>>> reload(sys)
<module 'sys' (built-in)>
>>> from importlib import reload
>>> reload(sys)
<module 'sys' (built-in)>

以上这篇基于Python2、Python3中reload()的不同用法介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现多线程采集的2个代码例子
Jul 07 Python
python实现封装得到virustotal扫描结果
Oct 05 Python
简单谈谈Python中函数的可变参数
Sep 02 Python
对python中两种列表元素去重函数性能的比较方法
Jun 29 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
Apr 05 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
Python包管理工具pip的15 个使用小技巧
May 17 Python
Python递归函数 二分查找算法实现解析
Aug 12 #Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 #Python
Django实现发送邮件找回密码功能
Aug 12 #Python
使用pyecharts生成Echarts网页的实例
Aug 12 #Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 #Python
python利用itertools生成密码字典并多线程撞库破解rar密码
Aug 12 #Python
Python实现网页截图(PyQT5)过程解析
Aug 12 #Python
You might like
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
2016/10/24 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
在Django的session中使用User对象的方法
2015/07/23 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
举例讲解Python常用模块
2019/03/08 Python
django settings.py 配置文件及介绍
2019/07/15 Python
python绘制高斯曲线
2021/02/19 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
村干部承诺书
2014/03/28 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript