Что такое метаклассы в Python

Python Middle Без компании
Что такое метаклассы в Python
Ответы
Метаклассы — это "классы классов", которые контролируют создание и поведение других классов. В Python метаклассом по умолчанию является `type`. **Пример:** ``` class Meta(type): def __new__(cls, name, bases, attrs): attrs['extra'] = 100 # Добавляем атрибут всем классам return super().__new__(cls, name, bases, attrs) class MyClass(metaclass=Meta): pass print(MyClass.extra) # 100 ``` **Основные моменты:** - Метаклассы позволяют перехватывать создание класса (через `__new__` или `__init__`). - Используются для автоматического добавления атрибутов, валидации, регистрации классов и т.д. - Альтернатива — декораторы классов (проще, но менее мощные). **Когда применять:** - При создании ORM (как в Django). - Для реализации паттернов вроде Singleton. - Для автоматической генерации кода. Осторожно: сложность метаклассов может усложнить поддержку кода!