SOLID — это набор принципов объектно-ориентированного программирования, которые помогают создавать гибкий, понятный и поддерживаемый код. Эти правила особенно важны в Python, где динамическая типизация и свобода синтаксиса иногда могут привести к запутанным решениям. Разберем каждый принцип на практических примерах. Суть: Класс должен решать только одну задачу. Пример нарушения: Здесь класс UserManager отвечает и за сохранение данных, и за рассылку писем. Исправление: Теперь каждый класс решает одну задачу. Суть: Классы должны быть открыты для расширения, но закрыты для модификации. Пример нарушения: При добавлении новой скидки придется изменять метод apply. Исправление: Теперь новые скидки добавляются через создание классов-стратегий. Суть: Подклассы должны заменять родительские классы без изменения поведения программы. Пример нарушения: Квадрат меняет логику установки ширины и высоты, что может привести к ошибкам. Исправление: Теперь квадрат и прямоугольник не наследуют друг друга,