我想知道是否有办法为不同类型实现基类的子类。每个子类应具有单独的输入和输出类型,同时提供与基类相同的行为。
背景:我想处理电压和温度样本。100 个电压样本形成一个电压数据集。100 个温度样本形成一个 TemperatureDataset。多个 VoltageDataset 形成一个 VoltageDataCluster。温度也一样。数据集的处理取决于它们的物理量。为了确保电压相关处理不能应用于温度样本,我想添加类型提示。
因此,如果有一种方法可以定义 VoltageDataClustes 方法 append_dataset 仅允许将 VoltageDataset 作为输入类型,我会很好。温度也一样。
有没有办法在不复制和粘贴的情况下实现这种行为?
# base class
class DataCluster:
def __init__(self, name):
self.name = name
self.datasets = list()
def append_dataset(self, dataset: Dataset) -> None:
self.datasets.append(dataset)
# subclass that should allow VoltageDataset input only.
class VoltageDataCluster(DataCluster):
pass
# subclass that should allow TemperatureDataset input only.
class TemperatureDataCluster(DataCluster):
pass
谢谢!尼克拉斯