The MRO for D is [D, B, C, A, object].
super(C, self)
~ A
super(B, self)
~ C
super(MyClass, self)
is not about the "base class of MyClass
", but about the next class in the MRO list of MyClass
.
As stated in the comments, super(…)
actually does not return the next class in the MRO, but delegates calls to it.