基于Python2、Python3中reload()的不同用法介绍

作者:mighty13 时间:2023-10-01 17:59:15 

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)>

来源:https://blog.csdn.net/mighty13/article/details/98670394

标签:Python2,Python3,reload
0
投稿

猜你喜欢

  • 本地计算机无法启动Apache故障处理

    2023-07-17 13:06:48
  • asp实现*号隐藏IP地址

    2008-08-10 18:51:00
  • 将ASP纪录集输出成n列表格的方法

    2008-03-19 13:27:00
  • text-indent 隐藏文字时出现的 outline问题

    2007-12-02 17:31:00
  • JavaScript 放大镜 移动镜片效果代码

    2023-08-13 08:24:08
  • SEO与“nofollow”及“external nofollow”

    2007-12-15 09:31:00
  • SQL Server 2005改进后的几个实用新特性

    2008-05-07 19:16:00
  • iframe框架用JavaScript子页面控制父页面

    2009-01-19 13:43:00
  • 正则表达式30分钟入门教程

    2007-08-27 10:38:00
  • PHP PDOStatement::columnCount讲解

    2023-06-04 22:24:39
  • 下一站:HandlerSocket!

    2011-04-11 09:02:00
  • SQL Transcation的一些总结分享

    2012-08-21 10:21:28
  • 图文教程教你asp编译成dll组件

    2010-07-16 13:16:00
  • 如何正确显示模式对话框showModalDialog中的中文?

    2010-06-28 18:24:00
  • Javascript——浅析注册事件

    2008-08-19 12:44:00
  • 低效的键盘和高效的登录框

    2007-08-22 09:17:00
  • Google Map API 基本使用方法

    2008-06-15 06:51:00
  • Asp中Server.ScriptTimeOut脚本超时属性需要注意的一点

    2008-10-18 14:53:00
  • 检测SQL Server是否有特洛伊木马

    2009-02-24 15:19:00
  • FrontPage 2002应用技巧四则

    2008-08-17 10:57:00
  • asp之家 网络编程 m.aspxhome.com