07.py (824B)
1 #!/usr/bin/env python3 2 class Base(): 3 """Base class""" 4 def __init__(self, a): 5 self.a = a # some data required in the base class 6 7 def explain(self): 8 print(f"Executing from base class: data=`{self.a}`") 9 10 11 class Derived(Base): 12 """Derived class""" 13 def __init__(self, a, b): 14 super().__init__(a) # properly initialize the base class 15 self.b = b # some data specific to the derived class 16 17 def explain(self): 18 # 1. Call the base class method first 19 super().explain() 20 # 2. Then do special work required for the derived class 21 print(f"Executing from derived class: data=`{self.b}`") 22 23 24 a = "base class data" 25 b = "derived class data" 26 base = Base(a) 27 derived = Derived(a, b) 28 29 base.explain() 30 derived.explain() 31 print(Base.__mro__) 32 print(Derived.__mro__)