8 More Advanced Class Design

In Chapter 7, we looked at some recipes that covered the basics of class design. In this chapter, we’ll dive more deeply into Python classes and class design.

In the Designing classes with lots of processing and Using properties for lazy attributes recipes in Chapter 7, we identified a design choice that’s central to object-oriented programming, the ”wrap versus extend” decision. One way to add features is to create a new subclass via an extension. The other technique for adding features is to wrap an existing class, making it part of a new class.

In addition to direct inheritance, there are some other class extension techniques available in Python. A Python class can inherit features from more than one superclass. ...

Get Modern Python Cookbook - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.