an as-code low-level display of an object when presentand __str__ is reserved for more user-friendly informational displays like ours here sometimes classes provide both __str__ for user-friendly displays and __repr__ with extra details for developers to view because printing runs __str__ and the interactive prompt echoes results with __repr__this can provide both target audiences with an appropriate display since __repr__ applies to more display casesincluding nested appearancesand because we're not interested in displaying two different formatsthe all-inclusive __repr__ is sufficient for our class herethis also means that our custom display will be used in if we list both bob and sue in print call-- technically nested appearanceper the sidebar in "version portabilityprintson page step customizing behavior by subclassing at this pointour class captures much of the oop machinery in pythonit makes instancesprovides behavior in methodsand even does bit of operator overloading now to intercept print operations in __repr__ it effectively packages our data and logic together into singleself-contained software componentmaking it easy to locate code and straightforward to change it in the future by allowing us to encapsulate behaviorit also allows us to factor that code to avoid redundancy and its associated maintenance headaches the only major oop concept it does not yet capture is customization by inheritance in some sensewe're already doing inheritancebecause instances inherit methods from their classes to demonstrate the real power of oopthoughwe need to define superclass/subclass relationship that allows us to extend our software and replace bits of inherited behavior that' the main idea behind oopafter allby fostering coding model based upon customization of work already doneit can dramatically cut development time coding subclasses as next stepthenlet' put oop' methodology to use and customize our person class by extending our software hierarchy for the purpose of this tutorialwe'll define subclass of person called manager that replaces the inherited giveraise method with more specialized version our new class begins as followsclass manager(person)define subclass of person this code means that we're defining new class named managerwhich inherits from and may add customizations to the superclass person in plain termsa manager is almost like person (admittedlya very long journey for very small joke )but manager has custom way to give raises more realistic example