使用子类在父类中运行相同的属性

时间:2019-05-22 16:38:58

标签: python pandas class inheritance multiple-inheritance

我有以下课程:

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()时,它给了我一个错误,这是因为我认为由于只适合A类的事实而被调用,因为它是先前编写的。

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

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

0 个答案:

没有答案