python中reload重载实例用法

作者:小妮浅浅 时间:2021-05-12 07:02:09 

当我们想对python中原有的模块进行覆盖,又不希望退出当前的程序,就需要用到重载的概念。这样既能使模块得到更新,又不影响解释器的使用。在导入的模块上,也是对之前原有模块的一次覆盖,包括最初导入时所加载的各种过程。下面我们学习reload的一些基础内容,在实例中体会加载功能。

1.装载MyModule语法演示:


from imp import reload reload(MyModule)

2.参数

module -- 模块对象。

3.返回值

返回模块对象。

4.实例

当前目录下有一个test.py :


# i am test.py
num = 1

Python console :


>>> import test
>>> test.num
1

在脚本运行期,如果 test.py 中的num 改为2,此时需要热更:


# i am test.py
num = 2

Python console :


>>> from importlib import reload
>>> reload(test)
<module 'test' from '/home/xiaojie/URun.ResearchPrototype/People/Xiaojie/test.py'>
>>> test.num
2

注意:reload函数希望获得的参数是一个已经加载了的模块对象的名称,所以如果在重载之前,请确保已经成功地导入了这个模块。

说明:Python 3.0把reload内置函数移到了imp标准库模块中。它仍然像以前一样重载文件,但是,必须导入它才能使用。

知识点扩展:

python3中reload()中出现错误的原因


>>> import os
>>> os.getcwd()
'C:\\CodingApp\\python'
>>> os.chdir(r'C:\Users\JIANCHEN\PycharmProjects\决策树\src')
>>> os.getcwd()
'C:\\Users\\JIANCHEN\\PycharmProjects\\决策树\\src'
>>> from imp import reload

Warning (from warnings module):
File "__main__", line 1
DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
>>> reload(index)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
 reload(index)
NameError: name 'index' is not defined
>>> import index
>>> reload(index)
<module 'index' from 'C:\\Users\\JIANCHEN\\PycharmProjects\\决策树\\src\\index.py'>

总结:在reload之前要import

来源:https://www.py.cn/jishu/jichu/21966.html

标签:python,reload,重载
0
投稿

猜你喜欢

  • ubuntu下在docker中安装mysql5.6 的方法

    2024-01-23 08:35:30
  • Golang指针隐式间接引用详解

    2024-02-22 02:29:53
  • Python中格式化字符串的四种实现

    2023-11-25 10:38:18
  • 五个简单有效的Python清理数据脚本分享

    2021-11-01 08:08:50
  • 详解Vue2.0里过滤器容易踩到的坑

    2024-05-09 10:40:46
  • mysql 5.7更改数据库的数据存储位置的解决方法

    2024-01-21 11:56:43
  • Sql server中时间查询的一个比较快的语句

    2008-12-29 14:16:00
  • NumPy中的维度Axis详解

    2021-02-12 12:39:35
  • MySQL数据备份方法的选择与思考

    2024-01-19 21:02:50
  • Python+Selenium实现短视频自动上传与发布的实践

    2021-06-12 15:58:46
  • vue实现导航栏下拉菜单

    2024-05-09 15:17:56
  • python爬虫之Appium爬取手机App数据及模拟用户手势

    2023-12-28 00:10:46
  • python3 字符串知识点学习笔记

    2023-05-02 16:25:35
  • Vue2.0 axios前后端登陆拦截器(实例讲解)

    2023-07-02 16:59:11
  • 详解Go语言中的Slice链式操作

    2024-05-22 10:29:05
  • SQL实现查询某字段的值为空的记录

    2024-01-18 13:44:56
  • python将ip地址转换成整数的方法

    2022-10-17 23:40:23
  • 交互设计实用指南系列(6) –标签明晰、有效

    2010-01-21 12:39:00
  • mysql联合索引的使用规则

    2024-01-15 06:18:14
  • Python OpenCV之常用滤波器使用详解

    2023-02-07 22:18:25
  • asp之家 网络编程 m.aspxhome.com