Chapter 4. The ABCs of Consistent Design
The Python Standard Library provides abstract base classes for a number of features of containers. It provides a consistent framework for the built-in container classes, such as list
, map
, and set
.
Additionally, the library provides abstract base classes for numbers. We can use these classes to extend the suite of numeric classes available in Python.
We'll look in general at the abstract base classes in the collections.abc
module. From there, we can focus on a few use cases that will be the subject of detailed examination in future chapters.
We have three design strategies: Wrap, Extend, and Invent. We'll look at the general concepts behind the various containers and collections that we might want to wrap or extend. Similarly, we'll look at the concepts behind the numbers that we might want to implement.
Our goal is to assure that our application classes integrate seamlessly with existing Python features. If we create a collection, for example, it's appropriate...