Учебник по ООП в Python 3.14
Основы
Введение
Классы и объекты
Атрибуты
Методы
Параметры методов
Атрибуты внутри класса
Методы внутри класса
Конструктор
Атрибуты через параметры конструктора
Приватные атрибуты
Приватные методы
Свойства через декоратор
Введение
Геттер через декоратор
Сеттер через декоратор
Свойство только для чтения
Вычисляемое свойство
Удаление свойства
Кэширование свойства
Продвинутое
Введение
Файлы классов
Цепочки методов
Класс как набор методов
Списки объектов
Объекты внутри классов
Манипуляция объектами в классах
Передача объектов в функцию
Оператор isinstance
Сравнение объектов
Наследование
Введение
Наследование публичных методов
Методы потомка
Переопределение методов родителя
Вызов переопределённого метода
Полиморфизм
Конструктор при наследовании
Приватные методы при наследовании
Приватные атрибуты при наследовании
Проблема приватных атрибутов при наследовании
Защищённые методы
Защищённые атрибуты
Оператор isinstance и наследование
Иерархия наследования
Статические методы и атрибуты класса
Введение
Статические методы
Статические методы внутри класса
Атрибуты класса
Атрибут класса внутри класса
Константы класса
Константы внутри класса
Обращение через класс и объект
Комбинация со статическими методами
Статический метод и self
Методы класса
Пример
Дескрипторы
Введение
Чтение через дескриптор
Запись через дескриптор
Удаление через дескриптор
Имя атрибута дескриптора
Аннотации типов
Введение
Аннотации параметров
Аннотация возвращаемого значения
Объект как тип
Аннотация None
Несколько типов
Аннотации атрибутов
Тип текущего класса
Перечисления
Введение
Члены перечисления
Имя и значение члена
Автоматические значения
Перебор перечисления
Сравнение членов
Методы перечисления
Целочисленное перечисление
Строковое перечисление
Флаг
Уникальные значения
Наследование перечислений
Вызовы по имени
Введение
Имя атрибута из переменной
Запись атрибута по имени
Метод из переменной
Вызов сразу после создания
Проверка существования атрибута
Специальные методы
Введение
Строковое представление объекта
Представление для отладки
Сравнение своим методом
Порядок объектов
Остальные операторы порядка
Хеширование
Логическое значение объекта
Вызов объекта
Менеджер контекста
Создание объекта
Деструктор
Объект как коллекция
Введение
Длина
Получение элемента
Запись элемента
Удаление элемента
Перебор
Следующий элемент
Проверка вхождения
Доступ к атрибутам
Введение
Чтение несуществующего атрибута
Чтение любого атрибута
Запись атрибута
Проверка атрибута при записи
Удаление атрибута
Атрибут только для чтения
Ограничение атрибутов
Введение
Запрет произвольных атрибутов
Отсутствие словаря атрибутов
Наследование и ограничение атрибутов
Сложение ограничений родителя и потомка
Атрибуты класса рядом с ограничением
Датаклассы
Введение
Значения по умолчанию
Фабрика значений по умолчанию
Настройка поля
Замороженный датакласс
Сравнение и порядок
Действия после создания
Наследование датаклассов
Словарь и кортеж из датакласса
Замена значений
Датакласс с ограничением атрибутов
Абстрактные классы
Введение
Абстрактные классы
Абстрактные методы
Параметры абстрактных методов
Наследование абстрактных классов
Оператор isinstance
Виртуальный подкласс
Протоколы
Введение
Объявление протокола
Соответствие без наследования
Проверка соответствия
Параметры методов протокола
Наследование протоколов
Несколько протоколов
Множественное наследование
Введение
Наследование от нескольких классов
Конфликты методов
Приоритет методов
Вызов метода родителя
Несколько абстрактных родителей
Абстрактный метод примеси
Примесь внутри примеси
Статические методы примеси
Атрибуты класса в примеси
Обобщённые классы
Введение
Параметр типа у класса
Параметр типа у метода
Ограничение параметра типа
Несколько параметров типа
Протокол с параметром типа