Metaclasses in Python
Metaclasses allow you to control class creation itself. They are often described as "classes of classes".
Why Metaclasses?
- Framework design (Django, SQLAlchemy)
- Automatic class validation
- API enforcement
Basic Example
class MyMeta(type):
def __new__(cls, name, bases, attrs):
attrs["created_by"] = "metaclass"
return super().__new__(cls, name, bases, attrs)
class Demo(metaclass=MyMeta):
pass
print(Demo.created_by)
📝 Use metaclasses sparingly — they add complexity.