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