Jan-10-2018, 05:19 PM
(This post was last modified: Jan-10-2018, 05:19 PM by Gribouillis.)
Why do you want to hide it? It is very difficult to hide anything in python code.
Would a metaclass suit your needs?
it works even with sub-sub-classes!
Would a metaclass suit your needs?
class AutoSuperInitialized(type): def __new__(meta, name, superclasses, memberdict): i = '__init__' if i in memberdict: f = memberdict[i] def __init__(self, *args, **kwargs): super(cls, self).__init__(*args, **kwargs) f(self, *args, **kwargs) memberdict[i] = __init__ cls = type.__new__(meta, name, superclasses, memberdict) return cls class BaseClass(metaclass=AutoSuperInitialized): def __init__(self): print('BaseClass __init__ called!') class OtherClass(BaseClass): def __init__(self): print('OtherClass __init__ called!') if __name__ == '__main__': obj = OtherClass()
![Exclamation Exclamation](https://python-forum.io/images/smilies/exclamation.png)