Я работаю над инструментом очистки данных временных рядов. Данные поступают в виде плохо отформатированных CSV-файлов, поэтому у меня есть две основные задачи: предварительная обработка и затем сеанс контроля качества. Препроцессор является экземпляром класса препроцессора; он может подключаться к CSV-файлам, читать данные, а затем применять определенный c набор методов. Данные представляются в виде атрибута экземпляра.
После предварительной обработки атрибута данных, и только этот, передается в экземпляр другого класса, Session, который реализует оценку и контроль качества данных. Очень сжатый эскиз можно увидеть ниже.
class A:
def __init__(self, src):
self.src = src
self.data = None
self.state = 0
def transform(self, x):
self.data = x
class B:
def __init__(self, data):
self.data = data
Теперь data
для класса B
по сути является атрибутом data
экземпляра класса A
при создании. Каков Python способ или общая схема его реализации? Мне кажется, это что-то вроде частичной композиции, но мне не нужна функциональность класса A
, только один ее атрибут. Однако мне кажется странным писать
a = A('src')
a.transform(0)
b = B(a.data)
всякий раз, когда я хочу передать данные из a
в b
. У кого-нибудь есть комментарий или стандартное решение для этого? Сама проблема, кажется, обычная ситуация, по крайней мере, в науке о данных.