@Eugene523

Нужно ли явно инициализировать все поля экземпляра класса в конструкторе?

Мой вопрос скорее не технический, а из разряда хороших практик.
В статичных языках типа C#, С++, Rust, структура класса (т.е. набор полей) задается явно. Это дает ясную картину того какие поля есть. В Python атрибут к экземпляру можно добавить в любом методе экземпляра. Так вот вопрос: Нужно ли явно инициализировать все поля экземпляра класса в конструкторе значениями, даже если эти значения фиктивные?
Если нет, то получается, что картина того какие поля есть (или будут) разбросана по методам и четкого представления нет. Либо же надо писать какой-то гигантский комментарий с перечислением полей.
Чтобы вы посоветовали?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Тут пригодится принцип наименьшего удивления.
Ситуация, когда набор атрибутов у объекта различается в зависимости от вызванных до
этого методов - более удивительна, чем ситуация, когда набор атрибутов один и тот же, просто часть из них имеет значения по умолчанию.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы