File: class/Workbook/Examples/Lecture7/specialize.py

class Super:
    def method(self):
        print 'in Super.method'    # default 
    def delegate(self):
        self.action()              # expected

class Inheritor(Super):
    pass

class Replacer(Super):
    def method(self):
        print 'in Replacer.method'

class Extender(Super):
    def method(self):
        print 'starting Extender.method'
        Super.method(self)
        print 'ending Extender.method'

class Provider(Super):
    def action(self):
        print 'in Provider.action'

if __name__ == '__main__':
    for klass in (Inheritor, Replacer, Extender):
        print '\n' + klass.__name__ + '...'
        klass().method()
    print '\nProvider...'
    Provider().delegate()



[Home page] Books Code Blog Python Author Train Find ©M.Lutz