Метакласс определяет создание и поведение объектов-классов. В Python обычные классы создаются метаклассом type; пользовательский метакласс обычно наследует type.
Что такое метакласс?
Метакласс определяет создание и поведение объектов-классов. В Python обычные классы создаются метаклассом type; пользовательский метакласс обычно наследует type.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Метакласс определяет создание и поведение объектов-классов. В Python обычные классы создаются метаклассом type; пользовательский метакласс обычно наследует type.
Он может контролировать namespace, проверять определение класса или регистрировать подклассы. Это уровень выше new/init экземпляров: экземпляром метакласса является сам класс. Часто задачу проще решить декоратором класса или init_subclass; метаклассы могут усложнить множественное наследование и сопровождение.