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 !
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