【发布时间】:2022-06-17 21:43:59
【问题描述】:
我有一个描述编码系统是什么样子的基类:
class Encoder(abc.ABC):
def __init__(self):
self._encode_time = []
self._decode_time = []
@abc.abstractmethod
def encode(self, decoded_data: DataMapper, **kwargs) -> Tuple[DataMapper, MetadataCollector]:
pass
@abc.abstractmethod
def decode(self, encoded_data: DataMapper, metadata: MetadataCollector, **kwargs) -> DataMapper:
pass
这个类被许多其他类继承来描述不同的编码器。 现在,我想为这些模型添加统计信息。比如我想存储每次调用函数时编解码的压缩时间。
例如,像这样的:
class Encoder(abc.ABC):
def __init__(self):
self._encode_time = []
self._decode_time = []
@abc.abstractmethod
def encode(self, decoded_data: DataMapper, **kwargs) -> Tuple[DataMapper, MetadataCollector]:
t1 = time.clock()
child_call(decoded_data, **kwargs)
self._encode_time.append(time.clock() - t1)
如何在不更改所有子类的代码的情况下做这样的事情?
【问题讨论】:
标签: python python-3.x