基于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使用PyGame模块播放声音的方法
May 20 Python
Python实现的最近最少使用算法
Jul 10 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
Python定时器实例代码
Nov 01 Python
对Python中内置异常层次结构详解
Oct 18 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
基于python判断目录或者文件代码实例
Nov 29 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
Python字典fromkeys()方法使用代码实例
Jul 20 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 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
PHP中echo和print的区别
2014/08/28 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
JS中的回调函数实例浅析
2018/03/21 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
react中Suspense的使用详解
2019/09/01 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
Python标准异常和异常处理详解
2015/02/02 Python
python调用fortran模块
2016/04/08 Python
Pycharm学习教程(1) 定制外观
2017/05/02 Python
python实现报表自动化详解
2017/11/16 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
python移位运算的实现
2019/07/15 Python
财务管理专业毕业生求职信范文
2013/09/21 职场文书
会计出纳岗位职责
2013/12/25 职场文书
预备党员思想汇报
2014/01/08 职场文书
运动会宣传口号
2014/06/09 职场文书
化学教育专业自荐信
2014/07/04 职场文书
一份关于丢失公司财物的检讨书
2014/09/19 职场文书
学位证书委托书
2014/09/30 职场文书
秋季运动会开幕词
2015/01/28 职场文书