mirror of
				https://github.com/pocketpy/pocketpy
				synced 2025-10-31 00:40:16 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| class A:
 | |
|     def __init__(self, a, b):
 | |
|         self.a = a
 | |
|         self.b = b
 | |
| 
 | |
|     def add(self):
 | |
|         return self.a + self.b
 | |
| 
 | |
|     def sub(self):
 | |
|         return self.a - self.b
 | |
|     
 | |
| a = A(1, 2)
 | |
| assert a.add() == 3
 | |
| assert a.sub() == -1
 | |
| 
 | |
| assert a.__base__ is object
 | |
| 
 | |
| class B(A):
 | |
|     def __init__(self, a, b, c):
 | |
|         super().__init__(a, b)
 | |
|         self.c = c
 | |
| 
 | |
|     def add(self):
 | |
|         return self.a + self.b + self.c
 | |
| 
 | |
|     def sub(self):
 | |
|         return self.a - self.b - self.c
 | |
| 
 | |
| assert B.__base__ is A    
 | |
| 
 | |
| b = B(1, 2, 3)
 | |
| assert b.add() == 6
 | |
| assert b.sub() == -4
 | |
| 
 | |
| class C(B):
 | |
|     def __init__(self, a, b, c, d):
 | |
|         super().__init__(a, b, c)
 | |
|         self.d = d
 | |
| 
 | |
|     def add(self):
 | |
|         return self.a + self.b + self.c + self.d
 | |
| 
 | |
|     def sub(self):
 | |
|         return self.a - self.b - self.c - self.d
 | |
|     
 | |
| assert C.__base__ is B
 | |
| 
 | |
| c = C(1, 2, 3, 4)
 | |
| assert c.add() == 10
 | |
| assert c.sub() == -8
 | |
| 
 | |
| class D(C):
 | |
|     def __init__(self, a, b, c, d, e):
 | |
|         super().__init__(a, b, c, d)
 | |
|         self.e = e
 | |
| 
 | |
|     def add(self):
 | |
|         return super().add() + self.e
 | |
| 
 | |
|     def sub(self):
 | |
|         return super().sub() - self.e
 | |
|     
 | |
| assert D.__base__ is C
 | |
| 
 | |
| d = D(1, 2, 3, 4, 5)
 | |
| assert d.add() == 15
 | |
| assert d.sub() == -13 |