首页 > 解决方案 > 使用子类在父类中运行相同的属性

问题描述

我有以下课程:

Class A:
  def __init__(self,df,metrics=True,data=True):
    ..
    ..
    self.preprocess(df)

  def preprocess(self,df):
    ..
    ..
    return(df)
  def train(self,df):
    .. 
    ..
    return(df)

  def fit(self,df):
    .. 
    ..
    return(df)

Class B:
  def __init__(self,df2):
    ..
    ..
    self.preprocess(df2)

  def preprocess(self,df2):
    ..
    ..
    return(df2)

  def train(self,df2):
    .. 
    ..
    return(df2)

  def fit(self,df2):
    .. 
    ..
    return(df2)

我想构造一个 C 类,它同时包含父类 A 和 B:

Class C (A,B):
   def combine():
     ..
     ..
     return()  

A 类和 B 类是两个机器学习模型,使用不同的算法给出一些结果。我想使用 C 类来包装这些类(A 和 B),然后将它们的结果合并为一个。

我面临的问题是这两个类 A 和 B 具有相同的属性(但采用不同的数据帧)。现在,当我打电话时C.fit(),它给了我错误,cz 我认为由于只适合 A 类的事实被调用,因为它是之前写的。

我想知道是否有一种方法可以使用 C 调用 A 和 B 的相似属性(A 采用 df 和 B 采用 df2)并最终结合这些结果?

简而言之,我想要的是:当我调用时C.fit(),我希望fit()在 A 和 B 中运行,并且在这两个类中创建 self.variables,这些类在单独调用时会创建。

标签: pythonpandasclassinheritancemultiple-inheritance

解决方案


推荐阅读