Python reload() 函数
描述
reload() 用于重新载入之前载入的模块。
在 Python2.x 版本中 reload() 是内置函数,在 Python2.x ~ Python3.3 版本移到 imp 包中(Python2.x 也可以导入 imp 包使用),Python3.4 之后到版本移到了 importlib 包中。
语法
Python2.x 版本是内置函数,可以直接使用:
reload(module)
Python2.x ~ Python3.3 之前版本:
import imp imp.reload(module)
或
from imp import reload reload(module)
Python3.4 之后到版本:
import importlib importlib.reload(module)
或
from importlib import reload reload(module)
参数
- module -- 模块对象。
返回值
返回模块对象。
实例
以下实例展示了 reload() 的使用方法:
Python2.x: 重新载入 sys 模块,并设置默认编码为 utf8
>>>import sys
>>> sys.getdefaultencoding() # 当前默认编码
'ascii'
>>> reload(sys) # 使用 reload
<module 'sys' (built-in)>
>>> sys.setdefaultencoding('utf8') # 设置编码
>>> sys.getdefaultencoding()
'utf8'
>>>
Python2.x~Python3.3: 重新载入 sys 模块
>>> import sys, imp
>>> imp.reload(sys)
<module 'sys' (built-in)>
>>> imp.reload(sys)
<module 'sys' (built-in)>
>=Python3.4: 重新载入 sys 模块
>>> import sys, importlib
>>> importlib.reload(sys)
<module 'sys' (built-in)>
>>> importlib.reload(sys)
<module 'sys' (built-in)>
sc14303
143***[email protected]
reload 会重新加载已加载的模块,但原来已经使用的实例还是会使用旧的模块,而新生产的实例会使用新的模块;
reload 后还是用原来的内存地址;
reload 不支持 from ××× import ××× 格式的模块进行重新加载。
sc14303
143***[email protected]
小雨
610***[email protected]
说明:Python 3.0 把 reload 内置函数移到了 imp 标准库模块中。它仍然像以前一样重载文件,但是,必须导入它才能使用。
方法一:
方法二:
小雨
610***[email protected]
龙启
fu0***[email protected]
Python3 以后的 reload 有多种方式,一种是如下:
还有一种是 importlib,如下:
当然用 from 的方法也是可以的,如:
import 也可以通过多种方法来实现,如:
龙启
fu0***[email protected]