Умный способ сброса атрибутов класса после удаления данных

#python

Вопрос:

У меня есть класс, который выполняет некоторую очистку данных.

 class Data:  def __init__(data):  self.data = data  self.T = data.shape[0]  self.n = data.shape[1]  self.N = self.T * self.n  ...   def clean_data():  # does something which removes observations  return clean_data  

Это стилизованный пример, мой класс имеет гораздо больше атрибутов и имеет три набора данных, которые зависят друг от друга для очистки (например, я бы очистил dataset1 в зависимости от того, произошло ли что-то в dataset2 и т. Д.), А также больше атрибутов. В моем текущем проекте clean_data() метод просто возвращает новый набор данных, который я могу заменить или не заменить self.data , если захочу. Однако это не оптимально, так как, если я удаляю наблюдения или добавляю наблюдения, мне нужно изменить каждый атрибут инициализации.

Есть какие-нибудь советы? Можно ли это как-то сделать с помощью геттеров и сеттеров?

Комментарии:

1. Можете ли вы просто получить некоторые «предустановки» данных, а затем позвонить __init__(preset1) оттуда clean_data() ?

2. Можете ли вы объяснить подробнее?

3. Вы хотите clean_data «сбросить» значения в экземпляре класса или просто вернуть исходные данные (но оставить обновленные атрибуты в покое) ?

4. В идеале я бы clean_data не возвращал, а фактически сбрасывал self.data = clean_data , а затем впоследствии обновлял все атрибуты. Суть clean_data в том, что он делает то, что он делает , и создает фильтр, в результате clean_data = data[filter] чего, поэтому этот фильтр необходимо применять и к другим атрибутам. Например, self.a = самость. a[фильтр], а затем self.b = len(self.a).