appears and need be modified in only one place--changes in the generic version are picked up by all classes that inherit from the generic class againeliminating code redundancy cuts future development effortthat' one of the primary assets classes bring to the table inheritance is best at coding extensions based on direct customization (like our manager specialization of personcomposition is well suited to scenarios where multiple objects are aggregated into whole and directed by controller layer class inheritance passes calls up to reuseand composition passes down to delegate inheritance and composition are not mutually exclusiveoftenthe objects embedded in controller are themselves customizations based upon inheritance not much since this was really first-cut prototypebut the lastname method would need to be updated for the new name formatthe person constructor would have change the job default to an empty listand the manager class would probably need to pass along job list in its constructor instead of single string (self-test code would change as wellof coursethe good news is that these changes would need to be made in just one place--in our classeswhere such details are encapsulated the database scripts should work as isas shelves support arbitrarily nested data the classes in this could be used as boilerplate "templatecode to implement variety of types of databases essentiallyyou can repurpose them by modifying the constructors to record different attributes and providing whatever methods are appropriate for the target application for instanceyou might use attributes such as nameaddressbirthdayphoneemailand so on for contacts databaseand methods appropriate for this purpose method named sendmailfor examplemight use python' standard library smptlib module to send an email to one of the contacts automatically when called (see python' manuals or application-level books for more details on such toolsthe attrdisplay tool we wrote here could be used verbatim to print your objectsbecause it is intentionally generic most of the shelve database code here can be used to store your objectstoowith minor changes test your knowledgeanswers