python 动态加载的实现方法

yipeiwu_com6年前Python基础

脚本语言都有一个优点,就是动态加载。lua语言有这个优点,python也有这个特性。说简单点就是,如果开发者发现自己的代码有bug,那么他可以在不关闭原来代码的基础之上,动态替换模块。替换方法一般用reload来完成。

1、reload的基本原理

reload主要做了两个动作,删除原来的模块,添加新的模块

2、reload的等效代码

del sys.modules[module_name]
__import__(module_name)

3、reload使用的时候要注意什么

3.1 reload的入口参数是module,不是字符串,即

import sys
module = sys.modules[module_name]

3.2 重载的文件只是对应模块的__init__.py文件,如果是其他文件,则不会生效

3.3 如果是目录中其他文件,则需要分别重新加载,比如

import sys
del sys.modules['module_name:sub_file']
__import__('module_name:sub_file')

或者是

reload(sys.modules['module_name:sub_file'])

总结

以上所述是小编给大家介绍的python 动态加载的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】的支持!

相关文章

python中文乱码的解决方法

乱码原因: 源码文件的编码格式为utf-8,但是window的本地默认编码是gbk,所以在控制台直接打印utf-8的字符串当然是乱码了! 解决方法: 1、print mystr.deco...

使用httplib模块来制作Python下HTTP客户端的方法

使用httplib模块来制作Python下HTTP客户端的方法

httplib 是 python中http 协议的客户端实现,可以使用该模块来与 HTTP 服务器进行交互。httplib的内容不是很多,也比较简单。以下是一个非常简单的例子,使用htt...

Python的Tkinter点击按钮触发事件的例子

Python的Tkinter点击按钮触发事件的例子

如果要开发一个比较大的程序,那么应该先把代码封装起来,在面向对象编程中,就是封装成类 先看代码: import tkinter as tk class App: def __in...

Django MEDIA的配置及用法详解

Django MEDIA的配置及用法详解

如果需要在数据库中存储图片或视频类的数据,我们可以配置MEDIA. 下面的示例将以上传一张图片的形式来说明MEDIA的配置及用法. 第一步 settings.py # media配置...

python socket多线程通讯实例分析(聊天室)

本文实例讲述了python socket多线程通讯方法。分享给大家供大家参考,具体如下: #!/usr/bin/evn python """ 这是一个Socket+多进程的例子(聊天...