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