基于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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
Python常用的日期时间处理方法示例
Feb 08 Python
深入理解Python3中的http.client模块
Mar 29 Python
pycharm重置设置,恢复默认设置的方法
Oct 22 Python
python 格式化输出百分号的方法
Jan 20 Python
Python编程中类与类的关系详解
Aug 08 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
Nov 01 Python
在keras下实现多个模型的融合方式
May 23 Python
浅谈pymysql查询语句中带有in时传递参数的问题
Jun 05 Python
python安装mysql的依赖包mysql-python操作
Jan 01 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
Jul 07 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变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
js实现精确到秒的倒计时效果
2016/05/29 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
对python判断是否回文数的实例详解
2019/02/08 Python
python set内置函数的具体使用
2019/07/02 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
django中的图片验证码功能
2019/09/18 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
python绘制趋势图的示例
2020/09/17 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
西班牙在线药店:DosFarma
2020/03/28 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
工艺工程师工作职责
2013/11/23 职场文书
医院护士的求职信范文
2013/12/26 职场文书
大学生赌博检讨书
2014/09/22 职场文书
农村文化建设标语
2014/10/07 职场文书
2014年宣传部个人工作总结
2014/12/06 职场文书
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS