Advertisement
viking_unet

python_class_super_inheritage

Apr 7th, 2020
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.55 KB | None | 0 0
  1. counter = 0
  2.  
  3. class BaseClass1:
  4.     def call_me(self):
  5.         global counter
  6.         counter += 1
  7.         print('BaseClass1', counter)#, BaseClass1.__bases__)
  8.         print("Calling method on Base Class1")
  9.     def test(self):
  10.         print('test BaseClass1')
  11.     _x = 1
  12.        
  13. class BaseClass2:
  14.     def call_me(self):
  15.         global counter
  16.         counter += 1
  17.         print('BaseClass2', counter)#, BaseClass2.__bases__)
  18.         print("Calling method on Base Class2")
  19.     def test(self):
  20.         print('test BaseClass2')
  21.     _x = 2
  22.  
  23. class LeftSubclass(BaseClass1):
  24.     def call_me(self):
  25.         global counter
  26.         counter += 1
  27.         print('LeftSubclass', counter)#, LeftSubclass.__bases__)
  28.         super().call_me()
  29.         print("Calling method on Left Subclass")
  30.     def _test(self):
  31.         print('test LeftSubclass')
  32.     #_x = 3
  33.  
  34. class RightSubclass(BaseClass2):
  35.     def call_me(self):
  36.         global counter
  37.         counter += 1
  38.         print('RightSubclass', counter)#, RightSubclass.__bases__)
  39.         super().call_me()
  40.         print("Calling method on Right Subclass")
  41.     def test(self):
  42.         print('test RightSubclass')
  43.     _x = 4
  44.  
  45. class SubClass(LeftSubclass, RightSubclass):    
  46.     def call_me(self):
  47.         global counter
  48.         counter += 1
  49.         print('SubClass', counter)#, SubClass.__bases__)
  50.         super().call_me()
  51.         print("Calling method on SubClass")
  52.     def _test(self):
  53.         print('test SubClass')
  54.     #_x = 5
  55.  
  56. print()
  57. s = SubClass()
  58. s.call_me()
  59.  
  60. s.test()
  61. print(SubClass._x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement