Как привести к наследу с детьми от родителей, где обновление атрибутов из родителей вызовов у ребенкаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как привести к наследу с детьми от родителей, где обновление атрибутов из родителей вызовов у ребенка

Сообщение Anonymous »

Я не уверен, возможно ли это, но есть ли способ, чтобы атрибуты детского обработки данных зависели от методов, вызываемых в родительском обратном данных? Причина в том, что я хочу, чтобы родительский обратный данных представил необработанные данные, а затем класс ребенка представил преобразованные данные. Затем, если необработанное обработку данных обновляется, вызываются методы из детского класса, и обновляются атрибуты для преобразованного обработки данных (и обновленный x распространяется на навсегда transformed_data .
Итак, когда я называю raw_data.update_value () , то оба Transformed_data._partition_dependents () и transformed_data._interpolate () вызываются без необходимости явного кода. p>
Я думал об использовании атрибутов класса в rawdata , но я хочу иметь возможность инициализировать различные Rawdata с несколькими различными параметрами, и все еще не уверен, как триггер Методы в TransformedData
from dataclasses import dataclass, field
import numpy as np

@dataclass
class RawData:
x: np.ndarray
y: np.ndarray

def update_values(self, x, y):
self.x = x
self.y = y

@dataclass
class TransformedData(RawData):
n_x: int
x_interp: np.ndarray = field(default_factory=lambda: np.array([]))
y_interp: np.ndarray = field(default_factory=lambda: np.array([]))

def __post_init__(self):
self._partition_dependents()
self._interpolate()

def _partition_dependents(self):
self.x_interp = np.linspace(self.x.min(), self.x.max(), self.n_x)

def _interpolate(self):
self.y_interp = np.interp(self.x_interp, self.x, self.y)

x_original = np.arange(10)
y_original = x_original ** 2
n_x = 100

raw_data = RawData(x_original, y_original)

transformed_data = TransformedData(n_x)

x_new = np.arange(20)
y_new = np.arange(20)

raw_data.update_values(x_new, y_new) # Then _partition_dependents() and _interpolate() to both trigger for transformed_data

raw_data.x[-1] == transformed_data.x[-1] # Should be true


Подробнее здесь: https://stackoverflow.com/questions/794 ... tributes-f
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»