is at the heart of python' flexibility passing any of our three objects to function that calls giveraise methodfor examplewould have the same effectthe appropriate version would be run automaticallydepending on which type of object was passed on the other handprinting runs the same __repr__ for all three objectsbecause it' coded just once in person manager both specializes and applies the code we originally wrote in person although this example is smallit' already leveraging oop' talent for code customization and reusewith classesthis almost seems automatic at times inheritcustomizeand extend in factclasses can be even more flexible than our example implies in generalclasses can inheritcustomizeor extend existing code in superclasses for examplealthough we're focused on customization herewe can also add unique methods to manager that are not present in personif managers require something completely different (python namesake reference intendedthe following snippet illustrates heregiveraise redefines superclass' method to customize itbut somethingelse defines something new to extendclass persondef lastname(self)def giveraise(self)def __repr__(self)class manager(person)def giveraise(self)def somethingelse(self)tom manager(tom lastname(tom giveraise(tom somethingelse(print(tominherit customize extend inherited verbatim customized version extension here inherited overload method extra methods like this code' somethingelse extend the existing software and are available on manager objects onlynot on persons for the purposes of this tutorialhoweverwe'll limit our scope to customizing some of person' behavior by redefining itnot adding to it oopthe big idea as isour code may be smallbut it' fairly functional and reallyit already illustrates the main point behind oop in generalin oopwe program by customizing what has already been donerather than copying or changing existing code this isn' always an obvious win to newcomers at first glanceespecially given the extra coding requirements of classes but overallthe programming style implied by classes can cut development time radically compared to other approaches step customizing behavior by subclassing