【发布时间】:2022-11-03 14:51:16
【问题描述】:
我以“广泛”的功能方式编写了一个 python 应用程序,使用冻结的数据类作为函数的输入和输出。这些数据类通常包含一个数据框,也许还有另一个属性,例如:
@dataclass(frozen=True)
class TimeSeries:
log: pd.DataFrame
sourceName: str
我现在有更多可能的数据对象,它们遵循“as-a”继承结构。因此,TimeSeries 的 DataFrame 可能只有 Time 和 A 的列,ExtendedTimeSeries 有一个包含这些列的列,还有一个 B 列,依此类推。我现在有 4 个不同的 TimeSeries,它们在 OO 范式中会落入一个层次结构中。
什么是最好的结构?
我可以使用(OO 风格)组合而不是继承,并且让 ExtendedTimeSeries 数据结构包含一个 TimeSeries 对象和一个独立的温度系列,但这似乎并不高效(必须在执行 df 操作之前合并)或安全(可能不匹配的行数)。
如果没有 DataFrame,这种组合方法似乎可以正常工作。有什么好的设计技巧吗?
我可以有一系列相互继承的数据类,但它们将具有完全相同的变量(在上面的示例中log 和sourceName),我不确定这是可能的/明智的。
【问题讨论】:
标签: python