Handling custom __new__() and _del__() with inheritance : When I derive a class in python, I need to call the `Base.__init__(self)` from the derived `__init__(self)` function like

    class Base(object):
        def __init__(self):
            pass
        
    class Der(Base):
        def __init__(self) :
            Base.__init__(self)

Do I need to do the same for `__new__(self)` and `__del__(self)` functions like

    class Base(object):
        def __new__(self):
            pass
        def __init__(self):
            pass    
        def __del__(self) :
            pass
            
    class Der(Base):
        def __new__(self):
            Base.__new__(self)
    
        def __init__(self) :
            Base.__init__(self)
            
        def __del__(self) :
            Base.__del__(self)

I am wondering because nothing seems to go WRONG if I don't do that. 
I am sure that python `gc` will take care, but is there anything I need to be worried about if I don't call them from Derived chain

