class Registry:
    def __init__(self):
        self.registered = {}

    def add(self, name):
        def decorator(function):
            self.registered[name] = function
            return function
        return decorator

    def __call__(self, name):
        return self.registered[name]

RegistryOne = Registry()
RegistryTwo = Registry()

@RegistryOne.add("the_one")
class Example1:
    def __init__(self, scale_factor=1):
        self.scale_factor = scale_factor


@RegistryOne.add("the_two")
class Example2:
    def __init__(self, scale_factor=2):
        self.scale_factor = scale_factor


if __name__ == "__main__":
    the_one = RegistryOne("the_one")()
    print(f"{the_one.scale_factor=}")

    assert RegistryOne.registered != RegistryTwo.registered