test_super.py 777 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env python3
  2. class A:
  3. def __init__(self):
  4. self.n = 2
  5. def add(self, m):
  6. print('self is {0} @A.add'.format(self))
  7. print('A', self.n)
  8. print('A', m)
  9. self.n += m
  10. class B(A):
  11. def __init__(self):
  12. self.n = 3
  13. def add(self, m):
  14. print('self is {0} @B.add'.format(self))
  15. super().add(m)
  16. print('B', self.n)
  17. print('B', m)
  18. self.n += 3
  19. class C(A):
  20. def __init__(self):
  21. self.n = 4
  22. def add(self, m):
  23. print('self is {0} @C.add'.format(self))
  24. super().add(m)
  25. print('C', self.n)
  26. print('C', m)
  27. self.n += 4
  28. class D(B, C):
  29. def __init__(self):
  30. self.n = 5
  31. def add(self, m):
  32. print('self is {0} @D.add'.format(self))
  33. super().add(m)
  34. print('D', self.n)
  35. print('D', m)
  36. self.n += 5
  37. d = D()
  38. d.add(2)
  39. print('done', d.n)