Python插件机制实现
Posted 力为
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python插件机制实现相关的知识,希望对你有一定的参考价值。
插件机制是代码/功能反向依赖注入到主体程序的一种方法,编译型语言通过动态加载动态库实现插件。对于Python这样的脚本语言,实现插件机制更简单。
机制
Python的__import__方法可以动态地加载Python文件,即以某个py脚本的文件名作为__import__的参数,在程序运行的时候加载py脚本程序模块。对应的import关键字则是静态加载依赖的py模块。
描述
__import__() 函数用于动态加载类和函数 。
如果一个模块经常变化就可以使用 __import__() 来动态载入。
语法
__import__ 语法:
__import__(name[, globals[, locals[, fromlist[, level]]]])参数说明:
- name -- 模块名
需要动态加载的py脚本若存放在任意的目录下,则需要首先需要增加脚本查找路径:
sys.path.append(modulePath)
应用示例
# 增加查找路径
sys.path.append(modulePath)
# 加载脚本
module = __import__(moduleName)
# 保存脚本对象,否则会被析构
self.modules[moduleName] = module
# 调用插件中的方法初始化
module.InitModule(self)
总结
使用插件机制可以实现高内聚低耦合的程序。在实践中,我们处理的任务有若干的可执行程序配合完成,可执行程序可以是C++,.Net , Java,甚至其他脚本程序,这时候我们使用Python作为粘合剂,定义了主体的任务流程框架,使用插件机制动态的注入需要执行的任务。另外当在不同的情况下,需要使用不同的exe配合的时候,我们只需要用json定义需要的exe组合,主程序不需要做任何的更改就可以满足变换的业务需求。
以上是关于Python插件机制实现的主要内容,如果未能解决你的问题,请参考以下文章
Android : 跟我学Binder ---- 什么是Binder机制?