English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

python - Dynamische Ladeimplementierungsmethode

Skriptsprachen haben einen Vorteil, nämlich die dynamische Ladefähigkeit. Die Lua-Sprache hat diesen Vorteil, und Python hat diese Eigenschaft ebenfalls. Einfach ausgedrückt bedeutet dies, dass ein Entwickler, wenn er bemerkt, dass sein Code Fehler enthält, Module dynamisch ersetzen kann, ohne die ursprüngliche Codebasis zu schließen. Der Ersatz erfolgt in der Regel durch das Laden von neuem (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动态加载的实现方法,希望对大家有所帮助。如果大家有任何疑问,请留言,我会及时回复。在此也非常感谢大家对呐喊教程的支持!

声明:本文内容来自网络,版权属于原作者。内容由互联网用户自发贡献并自行上传,本网站不拥有所有权,未进行人工编辑处理,也不承担相关法律责任。如果您发现涉嫌版权的内容,欢迎发送邮件至:notice#oldtoolbag.com(在发送邮件时,请将#替换为@进行举报,并提供相关证据。一经查实,本站将立即删除涉嫌侵权内容。)

Vermutlich mögen Sie