Metaclasses, descriptors, __new__, and dynamic attribute access
Control how classes themselves are created. type(), __new__, __init_subclass__, and the rare cases where metaclasses are the right tool.
The mechanism behind @property, Django ORM fields, and SQLAlchemy columns. __get__, __set__, __delete__ demystified.
Most people only know __init__. But __new__ runs first and controls whether an object is even created. Here's when it matters.
Intercept attribute access with __getattr__ and __setattr__. Build proxy objects, lazy loaders, and dynamic APIs.