Zen of Python
Метакласс: не магия, а ещё один уровень явности Python
Если класс — фабрика объектов, то метакласс играет роль фабрики самих классов. В Python 3 это не опция, а дефолт: любой ваш класс является экземпляром type, а class Foo: pass раскрывается в type('Foo', (), {}).
Свой метакласс наследуется от type и переопределяет __new__ или __init__. Он позволяет собирать, изменять или регистрировать классы программно, но в Python явность важнее изящества. В большинстве случаев ту же задачу решают наследование или декоратор класса.
Отсюда следует, почему в Python всё есть объект, включая само определение класса. Разбираемся в деталях. Если у вас установлено приложение,
вы можете сразу перейти в канал