Где и когда применяют классы в программировании на Питоне?

Насколько я понимаю, уместное применение классов при программирование на Питоне - один из признаков хорошего программиста. Как часто они используются? И где про них хорошо написано (основы и более продвинутый уровень), из актуальной литературы?

Евгений

Перфекционист с дедлайнами

От одного класса, как правило, пользы мало. Нужна целая система. А чтобы ей было удобно пользоваться, классы должны быть:

  • идеально подогнаны друг к другу
  • понятны
  • скрывать детали реализации

Разработать удобную систему классов - задача сложная, нетривиальная и, главное, трудоемкая. Это оправдано при разработке фреймворка или библиотеки. В остальных случаях стоит придерживаться правила "если можно решить задачу без создания классов, то лучше обойтись без них". Благо, в Python богатый выбор различных инструментов.

Пока Java-программист описывает интерфейсы и закладывает иерархию классов, программист на Python успеет решить задачу, протестировать и выкатить в production. В этом вся соль разработки на Python.

Советую почитать книгу Паттерны проектирования Эрика Фримена. Она не про Python, но это не принципиально.