in factas iswe still can' give someone raise if his pay is zero (bob is out of luck)we probably need way to set paytoobut we'll leave such extensions for the next release the good news is that python' flexibility and readability make refactoring easy--it' simple and quick to restructure your code if you haven' used the language yetyou'll find that python development is largely an exercise in rapidincrementaland interactive programmingwhich is well suited to the shifting needs of real-world projects adding persistence it' time for status update we now have encapsulated in the form of classes customizable implementations of our records and their processing logic making our classbased records persistent is minor last step we could store them in per-record pickle files againa shelve-based storage medium will do just as well for our goals and is often easier to code example - shows how example - pp \preview\make_db_classes py import shelve from person import person from manager import manager bob person('bob smith' 'software'sue person('sue jones' 'hardware'tom manager('tom doe' db shelve open('class-shelve'db['bob'bob db['sue'sue db['tom'tom db close(this file creates three class instances (two from the original class and one from its customizationand assigns them to keys in newly created shelve file to store them permanently in other wordsit creates shelve of class instancesto our codethe database looks just like dictionary of class instancesbut the top-level dictionary is mapped to shelve file again to check our workexample - reads the shelve and prints fields of its records example - pp \preview\dump_db_classes py import shelve db shelve open('class-shelve'for key in dbprint(key'=>\ 'db[keynamedb[keypaybob db['bob'print(bob lastname()print(db['tom'lastname() sneak preview