Last Updated: May 22, 2026
A metaclass is the class of a class. The same way an instance is built from a class, a class itself is built from a metaclass, and that metaclass is type by default. Metaclasses give you a hook to run code at the moment a class is defined, before any instance ever exists. This lesson covers what they are, how to write one, when __init_subclass__ is the better choice, and three practical patterns from the e-commerce world: registering product types, enforcing invariants on Order subclasses, and auto-building __slots__ from declared fields.