cs107-lecture-examples

Example codes used during Harvard CS107 lectures
git clone https://git.0xfab.ch/cs107-lecture-examples.git
Log | Files | Refs | README | LICENSE

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__)