Как устроен метакласс

Python Senior Без компании
Как устроен метакласс
Ответы
Метакласс — это класс, который создаёт другие классы. В Python метаклассы контролируют создание классов, подобно тому как классы контролируют создание экземпляров. По умолчанию метаклассом является `type`. Когда вы определяете класс, Python вызывает `type.__new__()` для его создания. Пример метакласса: ``` class Meta(type): def __new__(cls, name, bases, namespace): print(f"Создание класса {name}") return super().__new__(cls, name, bases, namespace) class MyClass(metaclass=Meta): pass # Выведет: "Создание класса MyClass" ``` **Как это работает:** - Python ищет метакласс в определении класса (`metaclass=Meta`). - Вызывает `Meta.__new__()`, передавая имя класса, родительские классы и атрибуты. - Метакласс может модифицировать создаваемый класс (например, добавить методы, проверить атрибуты). Используется редко, в основном для: - Валидации атрибутов класса. - Автоматической регистрации классов (например, в ORM). - Изменения поведения наследования.