🔖 Справочник: итоги блока ООП

⚡ Кратко

Используйте эту страницу как шпаргалку: найдите нужную конструкцию, сравните синтаксис с примером и затем примените её в своём коде.

Абстрактные классы

КонструкцияНазначение
from abc import ABC, abstractmethodИмпорт базы и декоратора
class C(ABC):Абстрактный базовый класс
@abstractmethodМетод без реализации, обязательный в наследнике
C()Вызовет TypeError, если есть нереализованные методы

Docstrings

КонструкцияНазначение
"""Описание.""" под classДокументация класса
ClassName.__doc__Доступ к строке документации
help(ClassName)Вывод документации в консоль

Пользовательские исключения

КонструкцияНазначение
class MyError(Exception):Базовое пользовательское исключение
class MyError(ValueError):Более точный тип ошибки
raise MyError("msg")Выбросить исключение
def __init__(self, value): self.value = valueХранение дополнительного контекста
super().__init__("msg")Передача сообщения базовому Exception

Методы сравнения

МетодОператорНазначение
__eq__==Равенство
__ne__!=Неравенство
__lt__<Меньше
__le__<=Меньше или равно
__gt__>Больше
__ge__>=Больше или равно
@total_orderingАвтоматическое добавление недостающих сравнений

Контейнерные методы

МетодОператорНазначение
__getitem__obj[key]Получить элемент
__setitem__obj[key] = valueУстановить элемент
__contains__key in objПроверить вхождение
__len__len(obj)Количество элементов

Арифметические методы

МетодОператорМетодОператор
__add__+__iadd__+=
__sub__-__isub__-=
__mul__*__imul__*=
__truediv__/__itruediv__/=
__floordiv__//__ifloordiv__//=
__mod__%__imod__%=
__pow__**__ipow__**=

Прочие полезные методы

МетодИспользованиеНазначение
__bool__bool(obj), if obj:Логическое значение объекта
__call__obj(...)Объект как функция
__str__str(obj), print(obj)Читаемое строковое представление
__repr__repr(obj)Формальное представление для отладки