import abc
import inspect
import sys
class Plugin(object):
@abc.abstractmethod
def run(self, data):
print("父插件的方法")
return data
def load_plugin():
module_name = "plugin"
__import__(module_name)
module = sys.modules[module_name]
module_attrs = dir(module)
for name in module_attrs:
var_obj = getattr(module, name)
if inspect.isclass(var_obj) and var_obj.__name__ != Plugin.__name__:
return var_obj()
return None
def init(data):
print(f"一、方法得到的值:{data}")
run(data)
def run(data):
print(f"二、方法得到的初值:{data}")
plugin = load_plugin()
if plugin:
data = plugin.run(data)
print(f"二、方法插件的结果值:{data}")
died(data)
def died(data):
print(f"三、方法得到的值:{data}")
print("流程结束")
def flow():
init(100)
if __name__ == '__main__':
print("执行流程")
flow()
没有合适的资源?快使用搜索试试~ 我知道了~
Python动态插件框架小案例
共2个文件
py:2个
需积分: 0 0 下载量 100 浏览量
2023-04-28
17:06:28
上传
评论 1
收藏 1KB ZIP 举报
温馨提示
一个使用python编写的动态插拔py插件的小案例,旨在说明python动态插件框架的结构
资源推荐
资源详情
资源评论
收起资源包目录
Chajian.zip (2个子文件)
Chajian
RenderLiu.py 1KB
plugin.py 187B
共 2 条
- 1
资源评论
1024小神
- 粉丝: 3w+
- 资源: 33
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功