基于Python2、Python3中reload()的不同用法介绍
2019-08-12 16:41
1196 查看
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()的不同用法介绍就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- 【转】Urllib.request用法简单介绍(Python3.3)
- python中reduce()函数的用法介绍
- 基于python的-selenium的基本用法
- Urllib.request用法简单介绍(Python3.3)
- 介绍Python的Urllib库的一些高级用法
- 基于Python os模块常用命令介绍
- Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
- 基于python的-scrapy框架的基本用法
- python列表的基本用法介绍
- python2和python3 is用法的不同,有点坑
- python3和python2中print的用法有很多不同,python3中需要使用括号
- 基于python的-字符串的用法
- jieba分词的Python与R语言基础用法介绍
- python强大的区间处理库interval用法介绍
- python中string模块各属性以及函数的用法介绍
- argparse模块入门介绍——基于python3.7
- python基础之__new__的用法介绍
- Python deque用法介绍
- 组合不同算法为一个整体(集成方法)-基于opencv和python的学习笔记(二十二)
- python中数组与多维数组用法介绍