python 动态加载的实现方法

yipeiwu_com5年前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 pyenv多版本管理工具的使用

python pyenv多版本管理工具的使用

项目地址github pyenv does... 改变每个用户系统级别的 python 版本 为每个项目提供不同的 python 版本 安装 克隆到本地即为安装,默认目录是...

Pycharm 创建 Django admin 用户名和密码的实例

Pycharm 创建 Django admin 用户名和密码的实例

1. 问题 使用PyCharm 创建完Django 项目 想登录admin 页面 却不知道用户名和密码。 用的默认sqlit 2.解决办法 2.1 打开manage.py 控制界面 2...

Python如何基于rsa模块实现非对称加密与解密

这篇文章主要介绍了Python如何基于rsa模块实现非对称加密与解密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1、简单介绍: R...

python 获取一个值在某个区间的指定倍数的值方法

如下所示: #获取一个值在某个区间的指定倍数的值方法 #1 # print([i for i in range(1,101) if i%5==0]) # 2 # L = rang...

python和pygame实现简单俄罗斯方块游戏

python和pygame实现简单俄罗斯方块游戏

本文为大家分享了python实现俄罗斯方块游戏的具体代码,供大家参考,具体内容如下 Github:Tetris 代码: # -*- coding:utf-8 -*- import...