Photo by Sardar Faizan / Unsplash

TIL - Python's __init_subclass__ is a Lightweight Plugin System

Today I Learned Apr 19, 2026

__init_subclass__ is called whenever a class is subclassed. This lets you register subclasses automatically without metaclass magic.

class Plugin:
    _registry = {}

    def __init_subclass__(cls, name: str, **kwargs):
        super().__init_subclass__(**kwargs)
        Plugin._registry[name] = cls

class JSONPlugin(Plugin, name="json"):
    pass

class XMLPlugin(Plugin, name="xml"):
    pass

print(Plugin._registry)  # {'json': JSONPlugin, 'xml': XMLPlugin}

Great for building extensible framework components.

Tags