I tried to understand how super works in python, and tried the following example:
class A(object): def __init__(self): print "in A init" class B(object): def __init__(self): print "in B init" class C(A,B): def __init__(self): super(C,self).__init__() print "In C" if __name__=="__main__": c=C()
quite simple .. And I tried the following super-call calls (displayed with the results here):
>>> super(B,c).__init__() >>> super(B,c).__init__() >>> super(A,c).__init__() in B init >>> super(A,c).__init__() in B init >>> super(A,c).__init__() in B init >>> super(B,c).__init__() >>> super(C,c).__init__() in A init
I don't understand why super(A,c).__init__() prints it to B init ??
source share