in the code that follows, instances of E haven't been through D's rigorous initiation process . class C(object): . def __init__(self): . print "C" . . class D(object): . def __init__(self): . print "D" . super(D, self).__init__() . . class E(C, D): . def __init__(self): . print "E" . super(E, self).__init__()