fork download
  1. class A:
  2. def __init__(self, a, **kwargs):
  3. print("A", a)
  4. super().__init__(**kwargs)
  5.  
  6.  
  7. class B:
  8. def __init__(self, b, **kwargs):
  9. print("B", b)
  10. super().__init__(**kwargs)
  11.  
  12.  
  13. class C(A, B):
  14. pass
  15.  
  16.  
  17. class D(B, A):
  18. pass
  19.  
  20.  
  21. class E(A, B):
  22. def __init__(self, e, **kwargs):
  23. print("E", e)
  24. super().__init__(**kwargs)
  25.  
  26.  
  27. class F(C, E):
  28. pass
  29.  
  30.  
  31. C(a=1, b=2)
  32. D(a=4, b=3)
  33. E(a=6, b=7, e=5)
  34. F(a=9, b=10, e=8)
  35. print(*[klass.__name__ for klass in F.mro()], sep=' -> ')
  36.  
Success #stdin #stdout 0.04s 9340KB
stdin
Standard input is empty
stdout
A 1
B 2
B 3
A 4
E 5
A 6
B 7
E 8
A 9
B 10
F -> C -> E -> A -> B -> object