Дизайн: класс с использованием одного атрибута другого класса - PullRequest
0 голосов
/ 07 марта 2020

Я работаю над инструментом очистки данных временных рядов. Данные поступают в виде плохо отформатированных 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. У кого-нибудь есть комментарий или стандартное решение для этого? Сама проблема, кажется, обычная ситуация, по крайней мере, в науке о данных.

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