基于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里大整数相乘相关技巧指南
Sep 12 Python
python通过pil将图片转换成黑白效果的方法
Mar 16 Python
Python迭代和迭代器详解
Nov 10 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
使用python和Django完成博客数据库的迁移方法
Jan 05 Python
Python中装饰器学习总结
Feb 10 Python
详解python中asyncio模块
Mar 03 Python
pandas数据处理进阶详解
Oct 11 Python
python zip()函数的使用示例
Sep 23 Python
python flask框架快速入门
May 14 Python
总结Python连接CS2000的详细步骤
Jun 23 Python
Python echarts实现数据可视化实例详解
Mar 03 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使之能同时支持GIF和JPEG
2006/10/09 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
javascript折半查找详解
2015/01/26 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
python实现排序算法
2014/02/14 Python
Python的时间模块datetime详解
2017/04/17 Python
python机器学习实战之K均值聚类
2017/12/20 Python
python url 参数修改方法
2018/12/26 Python
利用python在excel中画图的实现方法
2020/03/17 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
维德科技C#面试题笔试题
2015/12/09 面试题
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
电大毕业生自我鉴定
2013/11/10 职场文书
企业年检委托书范本
2014/10/14 职场文书
经典搞笑版检讨书
2015/02/19 职场文书
2015年医院工作总结范文
2015/04/09 职场文书
公司员工辞职信范文
2015/05/12 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android