The collections.abc Module
Learn about the collections.abc module and mapping abstractions it provides in Python.
We'll cover the following
One prominent use of abstract base classes is in the collections.abc
module. This module provides the abstract base class definitions for Python’s built-in collections. This is how list
, set
, and dict
(and a few others) can be built from individual component definitions.
We can use the definitions to build our own unique data structures in ways that overlap with built-in structures. We can also use the definitions when writing a type hint for a specific feature of a data structure without being overly specific about alternative implementations that might also be acceptable.
The Mapping
abstractions
The definitions in collections.abc
don’t—trivially—include list
, set
, or dict
. Instead, the module provides definitions like MutableSequence
, MutableMapping
, and MutableSet
, which are effectively abstract base classes for which the list
, dict
, or set
classes we use are the concrete implementations. Let’s follow the various aspects of the definition of Mapping
back to their origins. Python’s dict
class is a concrete implementation of MutableMapping
. The abstraction comes from the idea of mapping a key to a value. The MutableMapping
class depends on the Mapping
definition, an immutable, frozen dictionary potentially optimized for lookups. Let’s follow the relationships among these abstractions.
Here’s the path we want to follow:
Get hands-on with 1400+ tech skills courses.