Запустите те же атрибуты в родительских классах, используя дочерний класс - PullRequest
0 голосов
/ 22 мая 2019

У меня есть следующие классы:

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 и B (A принимает df, а B принимает в df2), используя C и в итоге объединить эти результаты?

Короче говоря, я хочу: когда я вызываю C.fit(), я хочу, чтобы оба fit() выполнялись в A и B, а также создавали self.variables в обоих этих классах, которые были бы созданы при вызове индивидуально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...