According to the docs '__init__' is only called automatically if '__new__' returns an instance of the original class.
def ie_key(cls):
return cls.__name__[:-2]
def ie_key(cls):
return cls.__name__[:-2]
+ def __new__(cls, *args, **kwargs):
mod = __import__(cls._module, fromlist=(cls.__name__,))
real_cls = getattr(mod, cls.__name__)
mod = __import__(cls._module, fromlist=(cls.__name__,))
real_cls = getattr(mod, cls.__name__)
- return real_cls.__new__(real_cls)
+ instance = real_cls.__new__(real_cls)
+ instance.__init__(*args, **kwargs)
+ return instance