我很难理解如何正确使用inheritance
并正确设计程序。
我试图尽可能简化我的代码。 因此,我得到了pandas数据帧,并为每一行创建一个API端点的XML消息。 我有以下代码:
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
现在不接受任何参数。
如果不走这条路,我很乐意接受完全不同的设计。