ООП — методология, в основе которой лежат понятия класса (шаблон) и объекта (экземпляр).
Четыре столпа ООП
Абстракция: Выделение ключевых характеристик объекта и отсечение незначимых.
Инкапсуляция: Сокрытие внутренней логики и данных. В Python реализуется соглашением об именовании:
_name: "защищенный" (не рекомендуется трогать вне класса).
__name: "приватный" (имя искажается для предотвращения прямого доступа).
Наследование: Создание новых классов на базе существующих. Все классы наследуются от object.
Полиморфизм: Возможность использовать разные типы данных через единый интерфейс.
Полиморфизм подтипов: Использование потомка вместо родителя.
Параметрический: Обработка данных любого типа (например, len()).
Ad-hoc: Перегрузка функций (в Python через разные аргументы).
Работа с классами
classRectangle:default_color="green"# Атрибут класса (статический)def__init__(self,width,height):self.width=width# Атрибут экземпляраself.height=heightdefarea(self):# Метод экземпляраreturnself.width*self.height@classmethoddefchange_color(cls,color):cls.default_color=color@staticmethoddefhint():print("Это прямоугольник")
Специальные методы (Магические методы)
__init__: Инициализатор (вызывается после создания объекта).
__new__: Конструктор (вызывается для создания экземпляра).