Урок 79. Summary session 20
⚡ Кратко: суть темы
Summary session 20 — урок повторения трёх тем: абстрактные классы, пользовательские исключения и магические методы.
- Абстрактные классы из
abc.ABCс@abstractmethodзадают «контракт» для наследников и не позволяют создать незавершённый объект. - Докстринги классов делают код понятнее; доступны через
ClassName.__doc__иhelp(). - Пользовательские исключения наследуются от
Exception(или его подклассов); могут хранить дополнительные поля для контекста. - Магические методы управляют сравнением, индексацией, арифметикой, логическим значением и вызываемостью объектов.
Что запомнить: магические методы — это не магия, а соглашения Python: реализуйте нужный dunder, и объект начнёт работать с встроенными операторами и функциями.
Частая ошибка: забывать вызывать super().__init__(...) в пользовательском исключении или возвращать NotImplemented в методах сравнения/арифметики при неподдерживаемом типе.
📖 О чём этот урок
Summary session 20 объединяет материал уроков 76–78: абстрактные классы, документирование классов, пользовательские исключения и магические методы. Цель — систематизировать знания и подготовиться к работе с базами данных.
Что повторим
- Создание абстрактных классов через
ABCи@abstractmethod. - Написание и назначение docstrings для классов.
- Создание пользовательских исключений с дополнительными полями.
- Методы сравнения:
__eq__,__lt__и декоратор@total_ordering. - Методы контейнеров:
__getitem__,__setitem__,__contains__,__len__. - Арифметические дандеры и инкрементные методы.
- Методы
__bool__и__call__.