#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).