さまざまな型の基本クラスのサブクラスを実装する方法があるのだろうか。各サブクラスは、基本クラスと同じ動作を提供しながら、個別の入力と出力の型を持つ必要があります。
背景: 電圧と温度のサンプルを処理したいと考えています。100 個の電圧サンプルが VoltageDataset を形成します。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
ありがとう!ニクラス