class.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. class A:
  2. def __init__(self, a, b):
  3. self.a = a
  4. self.b = b
  5. def add(self):
  6. return self.a + self.b
  7. def sub(self):
  8. return self.a - self.b
  9. a = A(1, 2)
  10. assert a.add() == 3
  11. assert a.sub() == -1
  12. assert a.__base__ is object
  13. class B(A):
  14. def __init__(self, a, b, c):
  15. super().__init__(a, b)
  16. self.c = c
  17. def add(self):
  18. return self.a + self.b + self.c
  19. def sub(self):
  20. return self.a - self.b - self.c
  21. assert B.__base__ is A
  22. b = B(1, 2, 3)
  23. assert b.add() == 6
  24. assert b.sub() == -4
  25. class C(B):
  26. def __init__(self, a, b, c, d):
  27. super().__init__(a, b, c)
  28. self.d = d
  29. def add(self):
  30. return self.a + self.b + self.c + self.d
  31. def sub(self):
  32. return self.a - self.b - self.c - self.d
  33. assert C.__base__ is B
  34. c = C(1, 2, 3, 4)
  35. assert c.add() == 10
  36. assert c.sub() == -8
  37. class D(C):
  38. def __init__(self, a, b, c, d, e):
  39. super().__init__(a, b, c, d)
  40. self.e = e
  41. def add(self):
  42. return super().add() + self.e
  43. def sub(self):
  44. return super().sub() - self.e
  45. assert D.__base__ is C
  46. d = D(1, 2, 3, 4, 5)
  47. assert d.add() == 15
  48. assert d.sub() == -13