Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Modes of method inheritance - delegate - provide

Let the child implement the functionality.

class Parent():
    def greet(self):
        print("Hello", self.get_name())

class Child(Parent):
    def __init__(self, name):
        self.name = name

    def get_name(self):
        return self.name

# Should not create instance from Parent
p = Parent()
# p.greet()    # AttributeError: 'Parent' object has no attribute 'get_name'

c  = Child('Foo')
c.greet()    # Hello Foo
  • Should we have a version of greet() in the Parent that throws an exception?
  • Do we want to allow the creation of instance of the Parent class?
  • Abstract Base Class (abc)