🎁 New User? Get 20% off your first purchase with code NEWUSER20 Register Now →
Menu

Categories

Python Advanced

What is Python Metaclass?

A class whose instances are classes themselves — the class of a class that controls how classes are created and behaved.

Metaclasses define how classes are constructed. When Python encounters a class statement, it calls the metaclass to create the class object. The default metaclass is type. Custom metaclasses can validate class definitions, automatically register classes, add methods/attributes, enforce coding standards, and implement ORMs. Django models use metaclasses extensively to convert class attributes into database fields. While powerful, metaclasses are rarely needed — most use cases are better served by class decorators or __init_subclass__. Tim Peters' advice: Metaclasses are deeper magic than 99% of users should ever worry about.