class MyFramework(object):
    """A bare MyFramework, I only hold a person's name
    """
_addons = {}

@staticmethod
def addAddon(name, addon):
    MyFramework._addons[name] = addon

def __init__(self, person):
    self.person = person
for name, addon in list(MyFramework._addons.items()):
    setattr(self, name, addon(self))
Putting separate python packages into same namespace?