Мне сложно понять, как правильно использовать здесь inheritance
и правильно спроектировать мою программу.
Я попытался максимально упростить свой код. Итак, я получаю pandas фреймов данных, и для каждой строки я создаю сообщение XML для конечной точки API. У меня есть следующий код:
class Parse:
def __init__(self, row):
self.row = row
def parse_header(self):
header = f'''<header>
<period>{self.row['year_period']}</period>
<date>{self.row['date_text']}</date>
</header>'''
return header
class Prep(Parse):
def __init__(self, data, file_name):
super().__init__()
self.data = data
self.file_dir = os.path.join('data', 'raw')
self.file_name = file_name
def create_line(self):
self.data['line_xml'] = self.data.apply(lambda x: self.parse_header(x), axis=1)
return self.data
Что усложняет то, что Parse
работает с каждой строкой фрейма данных и получает scalar
значений. В то время как Prep
работает со всем фреймом данных / столбцами.
Итак, я застрял на super().init
, что я должен указать здесь в качестве аргумента, потому что прямо сейчас self.parse_header
в Prep
не принимает никаких аргументов.
Я открыт для совершенно другого дизайна, если это не способ go.