Python插件机制实现

栏目: Python · 发布时间: 7年前

内容简介:插件机制是代码/功能反向依赖注入到主体程序的一种方法,编译型语言通过动态加载动态库实现插件。对于Python这样的脚本语言,实现插件机制更简单。Python的__import__方法可以动态地加载Python文件,即以某个py脚本的文件名作为__import__的参数,在程序运行的时候加载py脚本程序模块。对应的import关键字则是静态加载依赖的py模块。需要动态加载的py脚本若存放在任意的目录下,则需要首先需要增加脚本查找路径:

插件机制是代码/功能反向依赖注入到主体程序的一种方法,编译型语言通过动态加载动态库实现插件。对于 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组合,主程序不需要做任何的更改就可以满足变换的业务需求。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

High Performance JavaScript

High Performance JavaScript

Nicholas C. Zakas / O'Reilly Media / 2010-4-2 / USD 34.99

If you're like most developers, you rely heavily on JavaScript to build interactive and quick-responding web applications. The problem is that all of those lines of JavaScript code can slow down your ......一起来看看 《High Performance JavaScript》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具