File: LP6E/Chapter32/hack_class2.py

class Hack:
    numInstances = 0                         # Trace class passed in
    def __init__(self):
        Hack.numInstances += 1
    def printNumInstances(cls):
        print('Number of instances:', cls.numInstances, cls)
    printNumInstances = classmethod(printNumInstances)

class Sub(Hack):
    def printNumInstances(cls):              # Override a class method
        print('Extra stuff...', cls)         # But call back to original
        Hack.printNumInstances()
    printNumInstances = classmethod(printNumInstances)

class Other(Hack): pass                      # Inherit class method verbatim



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