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.
 
    