103 lines
2.6 KiB
Python
103 lines
2.6 KiB
Python
from typing import Callable
|
|
|
|
class BaseFunctor:
|
|
"""
|
|
基础函数器类, 提供数据处理的基本框架
|
|
|
|
该类实现了数据处理的基本接口, 包括数据推送、处理和回调机制。
|
|
所有具体的功能实现类都应该继承这个基类。
|
|
|
|
属性:
|
|
_data (dict): 存储处理数据的字典
|
|
_callback (Callable): 处理完成后的回调函数
|
|
_model (dict): 存储模型相关的配置和实例
|
|
"""
|
|
|
|
def __init__(self,
|
|
data: dict or bytes = {},
|
|
callback: Callable = None,
|
|
model: dict = {},
|
|
):
|
|
"""
|
|
初始化函数器
|
|
|
|
参数:
|
|
data (dict or bytes): 初始数据, 可以是字典或字节数据
|
|
callback (Callable): 处理完成后的回调函数
|
|
model (dict): 模型相关的配置和实例
|
|
"""
|
|
self._data: dict = {}
|
|
self.push_data(data)
|
|
self._callback: Callable = callback
|
|
self._model: dict = model
|
|
pass
|
|
|
|
def __call__(self, data = None):
|
|
"""
|
|
使类实例可调用, 处理数据并触发回调
|
|
|
|
参数:
|
|
data: 要处理的数据, 如果为None则处理已存储的数据
|
|
|
|
返回:
|
|
处理结果
|
|
"""
|
|
# 如果传入数据, 则压入数据
|
|
if data is not None:
|
|
self.push_data(data)
|
|
# 处理数据
|
|
result = self.process()
|
|
# 如果回调函数存在, 则触发回调
|
|
if self._callback is not None and callable(self._callback):
|
|
self._callback(result)
|
|
return result
|
|
|
|
def __add__(self, other):
|
|
"""
|
|
重载加法运算符, 用于合并数据
|
|
|
|
参数:
|
|
other: 要合并的数据
|
|
|
|
返回:
|
|
self: 返回当前实例, 支持链式调用
|
|
"""
|
|
self.push_data(other)
|
|
return self
|
|
|
|
def set_callback(self, callback: Callable):
|
|
"""
|
|
设置回调函数
|
|
|
|
参数:
|
|
callback (Callable): 新的回调函数
|
|
"""
|
|
self._callback = callback
|
|
|
|
def set_model(self, model: dict):
|
|
"""
|
|
设置模型配置
|
|
|
|
参数:
|
|
model (dict): 新的模型配置
|
|
"""
|
|
self._model = model
|
|
|
|
def push_data(self, data):
|
|
"""
|
|
推送数据到处理器
|
|
|
|
参数:
|
|
data: 要处理的数据
|
|
"""
|
|
pass
|
|
|
|
def process(self):
|
|
"""
|
|
处理数据的核心方法
|
|
|
|
返回:
|
|
处理结果
|
|
"""
|
|
pass
|