Ein Aufruf von super(D, self) liefert ein super-Objekt.
Es findet die nächste Klasse nach D in self.__class__mro__
>>> D.__mro__
(<class 'ABCD_trad.D'>, <class 'ABCD_trad.B'>, <class 'ABCD_trad.C'>, <class 'ABCD_trad.A'>, <type 'object'>)
class A(object):
def m(self):
print("do A")
class B(A):
def m(self):
print("do B")
super(B, self).m()
class C(A):
def m(self):
print("do C")
super(C, self).m()
class D(B,C):
def m(self):
print("do D")
super(D, self).m()
Klasse B
Klasse A
Klasse C