25cf66e4ecb9887c788ef2d13a2f8c16

I need to dynamically create a class that is created by metaclass that has a base class passed dynamically. I have following solution. Can anybody refactor it so its more simple. In output I would need a new ModerationManager class that is extended from dynamically passed base class. I need metaclass because I want a new class to be expendable.

class ModerationManager(object):
__metaclass__ = MetaClass # how to pass here a base class that will be used in creation process of new class

class MetaClass(type):
    def __new__(cls, name, bases, attrs):
        return super(MetaClass, cls).__new__(cls, name, bases, attrs)

class ModerationManager(object):
    
    def __call__(self, base_manager, *args, **kwargs):
        return MetaClass(self.__class__.__name__, (self.__class__, base_manager), {}) 

class Manager(object): pass

NewClass = ModerationManager()(Manager)

print NewClass.__bases__

(<class '__main__.ModerationManager'>, <class '__main__.Manager'>)

Refactorings

No refactoring yet !

Your refactoring





Format Copy from initial code

or Cancel