I have a program something like this :
class A():
def go(self):
print("A")
class B(A):
def go(self):
super().go()
print("B")
class C(A):
def go(self):
super().go()
print("C")
class D(A):
def go(self):
super().go()
print("D")
class E(B, C, D):
def go(self):
super().go()
print("E")
a = A()
b = B()
c = C()
d = D()
e = E()
print(e.go())
Here is the output to this:
A
D
C
B
E
None
I was curious about the workflow of super(), how does it print D, C before B and why is None printed at last? A detailed explanation would be much appreciated.