Метаклассы и __init_subclass__ Python: задачи на проверку классов
Ошибку в классе плагина можно обнаружить ещё при его объявлении. В этих задачах проверка защищает константы предков, требует парные методы и следит за порядком примесей или миграций. Часть упражнений решается через init_subclass, часть использует метакласс. Начните с вопросов о порядке вызовов, затем соберите реестр наследников. Условия с множественным наследованием проверят, не забывает ли решение другие ветви иерархии.
Как заниматься
8 заданий ниже можно проходить по порядку или выбирать нужную проблему. В заданиях на код есть проверка решения; в вопросах — проверка выбранного ответа. Требования к реализации и примеры приведены на страницах заданий.
Вся практика собрана в бесплатном большом задачнике по Python для разработчиков.
Смежная практика
- Когда вызывается initsubclass в Python: тест
Когда вызывается initsubclass в Python: тест. Вопрос с проверкой ответа.
Практический Python для разработчиков: большой задачник - Метаклассы Python: передача аргументов класса в initsubclass
Метаклассы Python: передача аргументов класса в initsubclass. Вопрос с проверкой ответа.
Практический Python для разработчиков: большой задачник - Python initsubclass: запрет переопределения констант
Python initsubclass: запрет переопределения констант. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Метакласс Python: регистрация методов в пространстве имён
Метакласс Python: регистрация методов в пространстве имён. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - MRO в Python: проверка порядка примесей в наследовании
MRO в Python: проверка порядка примесей в наследовании. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Метакласс Python: проверка парных методов prepare и render
Метакласс Python: проверка парных методов prepare и render. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Python initsubclass: иерархический реестр классов
Python initsubclass: иерархический реестр классов. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Python initsubclass: проверка порядка миграций схемы
Python initsubclass: проверка порядка миграций схемы. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник
