L6·Expert
🪞Metaclasses
Classes that create classes.
metaclasstype
§ 1type is the default metaclass
type(name, bases, dict) creates a class at runtime. class C: is sugar for that call.
§ 2class C(metaclass=Meta):
Meta.__init__ or Meta.__new__ can register, validate, or transform the class as it's built.
§ 3Usually you don't need them
Prefer decorators or __init_subclass__ for most use cases.
Example
1class UpperMeta(type):2 def __new__(mcs, name, bases, ns):3 ns = {k.upper() if not k.startswith('__') else k: v for k, v in ns.items()}4 return super().__new__(mcs, name, bases, ns)56class Config(metaclass=UpperMeta):7 host = "localhost"8 port = 8080910print(Config.HOST, Config.PORT)Try it live · Python runs in your browser
Loading playground…
Checkpoint quiz
Question 1 / 2
The default metaclass is: