基于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连接mssql数据库编码问题解决方法
Jan 01 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
详谈python在windows中的文件路径问题
Apr 28 Python
基于python绘制科赫雪花
Jun 22 Python
python爬虫简单的添加代理进行访问的实现代码
Apr 04 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
Keras 使用 Lambda层详解
Jun 10 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 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数组一对一替换实现代码
2012/08/31 PHP
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
漂亮的提示信息(带箭头)
2007/03/21 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
微信小程序使用Promise简化回调
2018/02/06 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
python人人网登录应用实例
2014/09/26 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
python标识符命名规范原理解析
2020/01/10 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
CAD制图设计师自荐信
2014/01/29 职场文书
教育技术职业规划范文
2014/03/04 职场文书
党员实事承诺书
2014/03/26 职场文书
法制宣传教育方案
2014/05/09 职场文书
保护环境演讲稿
2014/05/10 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
电力工程合作意向书
2015/05/11 职场文书
借条格式范本
2015/05/25 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
Python实现机器学习算法的分类
2021/06/03 Python
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL