this book introduces the terminology of the object-oriented paradigm it focuses on object-oriented design with step-by-step examples it guides us from simple inheritanceone of the most useful tools in the object-oriented programmer' toolbox through exception handling to design patternsan object-oriented way of looking at object-oriented concepts along the waywe'll learn to integrate the object-oriented and not-so-object-oriented aspects of the python programming language we will learn the complexities of string and file manipulationemphasizing (as python doesthe difference between binary and textual data we'll then cover the joys of unit testingusing not onebut two unit testing frameworks finallywe'll explorethrough python' various concurrency paradigmshow to make objects work well together at the same time what this book covers this book is loosely divided into four major parts in the first four we will dive into the formal principles of object-oriented programming and how python leverages them in through we will cover some of python' idiosyncratic applications of these principles by learning how they are applied to variety of python' built-in functions through cover design patternsand the final two discuss two bonus topics related to python programming that may be of interest object-oriented designcovers important object-oriented concepts it deals mainly with terminology such as abstractionclassesencapsulationand inheritance we also briefly look at uml to model our classes and objects vii