collections.abc --- Abstract Base Classes for Containers — Collections Abstract Base Classes -- Detailed Descriptions

ABC for classes that provide the ~object.contains method.

ABC for classes that provide the ~object.hash method.

ABC for classes that provide the ~object.len method.

ABC for classes that provide the ~object.call method.

See annotating-callables for details on how to use !Callable in type annotations.

ABC for classes that provide the ~container.iter method.

Checking isinstance(obj, Iterable) detects classes that are registered as Iterable or that have an ~container.iter method, but it does not detect classes that iterate with the ~object.getitem method. The only reliable way to determine whether an object is iterable is to call iter(obj).

ABC for sized iterable container classes.

ABC for classes that provide the ~iterator.iter and ~iterator.next methods. See also the definition of iterator.

ABC for iterable classes that also provide the ~object.reversed method.

ABC for generator classes that implement the protocol defined in 342 that extends iterators with the ~generator.send, ~generator.throw and ~generator.close methods.

See annotating-generators-and-coroutines for details on using !Generator in type annotations.

ABCs for read-only and mutable sequences .

Implementation note: Some of the mixin methods, such as ~container.iter, ~object.reversed, and ~sequence.index make repeated calls to the underlying ~object.getitem method. Consequently, if ~object.getitem is implemented with constant access speed, the mixin methods will have linear performance; however, if the underlying method is linear (as it would be with a linked list), the mixins will have quadratic performance and will likely need to be overridden.

ABCs for read-only and mutable sets .

ABCs for read-only and mutable mappings .

ABCs for mapping, items, keys, and values views .

ABC for awaitable objects, which can be used in await expressions. Custom implementations must provide the ~object.await method.

Coroutine objects and instances of the ~collections.abc.Coroutine ABC are all instances of this ABC.

ABC for coroutine compatible classes. These implement the following methods, defined in coroutine-objects: ~coroutine.send, ~coroutine.throw, and ~coroutine.close. Custom implementations must also implement ~object.await. All Coroutine instances are also instances of Awaitable. …