Check

Метаклассы и их применение

Python Senior Яндекс
Что такое метакласс в Python и в каких случаях его использование оправдано? Приведите пример практического кейса.
Ответы
Метаклассы
Метакласс — это класс, который создаёт другие классы. По умолчанию метакласс `type`. Переопределяя его методы (`__new__`, `__init__`), можно вмешиваться в создание классов: модифицировать атрибуты, регистрировать классы, делать автогенерацию. Применение: - авто-регистрация обработчиков (ORM, DI-контейнеры), - валидация структуры класса, - DSL/фреймворки. Пример простого реестра: ```python class RegistryMeta(type): registry = {} def __new__(mcls, name, bases, attrs): cls = super().__new__(mcls, name, bases, attrs) if name != 'Base': mcls.registry[name] = cls return cls class Base(metaclass=RegistryMeta): pass class HandlerA(Base): pass print(RegistryMeta.registry) # {'HandlerA': <class ...>} ```