Да. Встроенный метакласс type обычно создаёт объекты классов: type(MyClass) возвращает type. Пользовательские метаклассы можно определить наследованием от type.
Метакласс встроен в Python?
Да. Встроенный метакласс type обычно создаёт объекты классов: type(MyClass) возвращает type. Пользовательские метаклассы можно определить наследованием от type.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Да. Встроенный метакласс type обычно создаёт объекты классов: type(MyClass) возвращает type. Пользовательские метаклассы можно определить наследованием от type.
Класс тоже является объектом, а метакласс определяет, как он создаётся и ведёт себя. Запись class A: ... в обычном случае приводит к созданию класса через type; динамический аналог — type('A', (), {}). Для кастомизации используют metaclass=Meta и методы вроде new. Метакласс не нужен для любой настройки класса: декоратор или init_subclass часто проще. При множественном наследовании метаклассы должны быть совместимы.