designing with classes so far in this part of the bookwe've concentrated on using python' oop toolthe class but oop is also about design issues--that ishow to use classes to model useful objects this will touch on few core oop ideas and present some additional examples that are more realistic than many shown so far along the waywe'll code some common oop design patterns in pythonsuch as inheritancecompositiondelegationand factories we'll also investigate some designfocused class conceptssuch as pseudoprivate attributesmultiple inheritanceand bound methods one note up frontsome of the design terms mentioned here require more explanation than can provide in this book if this material sparks your curiosityi suggest exploring text on oop design or design patterns as next step as we'll seethe good news is that python makes many traditional design patterns trivial python and oop let' begin with review--python' implementation of oop can be summarized by three ideasinheritance inheritance is based on attribute lookup in python (in name expressionspolymorphism in methodthe meaning of method depends on the type (classof subject object encapsulation methods and operators implement behaviorthough data hiding is convention by default by nowyou should have good feel for what inheritance is all about in python we've also talked about python' polymorphism few times alreadyit flows from python' lack of type declarations because attributes are always resolved at runtimeobjects that