基于Python2、Python3中reload()的不同用法介绍
作者:mighty13 发布时间:2023-10-01 17:59:15
标签:Python2,Python3,reload
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


猜你喜欢
- 这段时间一直想尝试着在SAE中使用Python,初步选择了Web.py框架做为开发框架,但是可怜SAE上的资料少的可怜,有点问题基本上解决不
- 前言平静之下,蓦然回首,base64 却在灯火阑珊处。今天翻开旧项目发现挺多图片相关的插件都是用 base64 来显示图片的。谈到 base
- 今儿继续再看老师给推荐的深入浅出mysql数据库开发这本书,看到innodb数据库的外键关联问题时,遇到了一个问题,书上写的是可以对父表进行
- 有时候有很多逗号,这样我们就不好处理了,下面的函数就是将多个逗号替换为一个逗号,方便后面的处理。<script language=&q
- 背景我在开发小程序的时候,有需求要实现录音功能,并能上传给服务器。小程序录音功能我是使用的微信的wx.getRecorderManager(
- 本文实例讲述了Python使用微信SDK实现的微信支付功能。分享给大家供大家参考,具体如下:最近一段时间一直在搞微信平台开发,v3.37版本
- 前言:前面提到了Python中的数值型内置数据类型,接下来呢我们就着重介绍一下字符串类型。在Python中字符串是一个有序的字符集合,没有独
- 现如今经常出现在网页上的基于 JavaScript 实现的弹出框有三种,分别是 alert、confirm、prompt 。该章节主要是学习
- 前言gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的
- 一、从 4.0 到 4.1 的主要变化 如果在4.1.0到4.1.3版本的MySQL中创建了包含 TIMESTAMP 字段的 InnoDB表
- WebSocket - 开启通往新世界的大门WebSocket是什么?WebSocket是一种在单个TCP连接上进行全双工通讯的协议。Web
- 这几天有一台MySQL数据库服务器出现了频繁的掉线情况,通过排查,并没有排查出哪个网站被攻击,百思不得其解中的时候,群里有个朋友说是因为微软
- 一、安装配置PHP1、下载Php的版本zip包之后,解压缩到指定目录。下载地址:http://www.php.net/downl
- MYSQL在一个字段值前面加字符窜,如下:member 表名card 字段名update member SET card = '00
- 要想在ASP.NET项目中使用SQLite数据库,先需下载一个ADO.NET 2.0 SQLite Data Provider,下载地址为:
- 如下所示:import pandas as pdcontent = ['T', 'F'] * 10data
- Django自带强大的User系统,为我们提供用户认证、权限、组等一系列功能,可以快速建立一个完整的后台功能。但User模型并不能满足我们的
- 在本机运行含有JavaScript代码的网页时(比如Google AD代码),IE浏览器会产生一个警告。这个“警告”确实很烦人,开始时还会误
- 这是个删除非空目录的例子test.asp要执行删除你需要对该目录具有修改权限<% dim fso,tmpfold
- 一.Pygame程序基本搭建过程Pygame搭建游戏窗口主要为如下几步1.初始化化程序在使用Pygame编程之前,我们要对程序进行初始化,代