@@ -0,0 +1,1382 @@
+#!/usr/bin/python%0A# -*- indent-tabs-mode: nil; tab-width: 4 -*-%0A# vi: et ts=4 sts=4 sw=4%0A%0A# Ref:https://fuhm.net/super-harmful/%0A%0Adef main():%0A    print %22F MRO:%22, %5Bx.__name__ for x in F.__mro__%5D%0A    F()%0A    print %22C2 MRO:%22, %5Bx.__name__ for x in C2.__mro__%5D%0A    C2()%0A%0Aclass A(object):%0A    def __init__(self):%0A        print %22enter A%22%0A        super(A, self).__init__()  # need in diamond inheritance%0A        print %22leave A%22%0A%0Aclass B(object):%0A    def __init__(self):%0A        print %22enter B%22%0A        super(B, self).__init__()  # need in diamond inheritance%0A        print %22leave B%22%0A%0Aclass A2(object):%0A    def __init__(self):%0A        print %22enter A2%22%0A        #super(A2, self).__init__()  # no need in simple inheritance%0A        print %22leave A2%22%0A%0Aclass C(A):%0A    def __init__(self):%0A        print %22enter C%22%0A        super(C, self).__init__()%0A        print %22leave C%22%0A%0Aclass C2(A2):%0A    def __init__(self):%0A        print %22enter C2%22%0A        super(C2, self).__init__()%0A        print %22leave C2%22%0A%0Aclass D(A):%0A    def __init__(self):%0A        print %22enter D%22%0A        super(D, self).__init__()%0A        print %22leave D%22%0A%0Aclass E(B, C):%0A    def __init__(self):%0A        print %22enter E%22%0A        super(E, self).__init__()%0A        print %22leave E%22%0A%0Aclass F(E, D):%0A    def __init__(self):%0A        print %22enter F%22%0A        super(F, self).__init__()%0A        print %22leave F%22%0A%0Aif __name__ == '__main__':%0A    main()%0A%0A

add super example