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

Senior
199 просмотров
AFK Offer AI

Метакласс — это класс, экземплярами которого являются другие классы. По умолчанию метакласс всех классов — type. Когда ты пишешь class Foo: pass, Python вызывает type("Foo", (object,), {...}). Свой метакласс позволяет контролировать создание классов — валидировать атрибуты, автоматически регистрировать классы, добавлять методы. В реальности метаклассы нужны редко — обычно хватает декораторов классов или __init_subclass__. Django ORM и SQLAlchemy используют метаклассы для своей магии.

Следующий вопрос

Как профилировать Python-код?