Update docs for collections ABCs and for collections.UserDict.

This commit is contained in:
Raymond Hettinger 2008-02-06 01:23:58 +00:00
parent 0fc8351f64
commit e4c96ad7d3
3 changed files with 42 additions and 61 deletions

View file

@ -32,25 +32,32 @@ ABC Notes
:class:`collections.Iterable` Defines ``__iter__()``
:class:`collections.Iterator` Derived from :class:`Iterable` and in
addition defines ``__next__()``
:class:`collections.Sized` Defines ``__len__()``
:class:`collections.Mapping` Derived from :class:`Container`,
:class:`Iterable`,
and :class:`Sized`, and in addition
defines ``__getitem__()``, ``get()``,
``__contains__()``, ``__len__()``,
``__eq__()``, ``__ne__()``,
``__iter__()``, ``keys()``,
``items()``, and ``values()``
:class:`collections.MutableMapping` Derived from :class:`Mapping`
:class:`collections.MutableSequence` Derived from :class:`Sequence`
:class:`collections.MutableSet` Derived from :class:`Set` and in
addition defines ``add()``,
``clear()``, ``discard()``, ``pop()``,
and ``toggle()``
:class:`collections.Sequence` Derived from :class:`Container`,
:class:`Iterable`, and :class:`Sized`,
and in addition defines
``__getitem__()``
:class:`collections.Set` Derived from :class:`Container`, :class:`Iterable`, and :class:`Sized`
:class:`collections.Sized` Defines ``__len__()``
``__getitem__()`
:class:`collections.MutableSequence` Derived from :class:`Sequence`
:class:`collections.Set` Derived from :class:`Container`, :class:`Iterable`, :class:`Sized`.
add in addition defines
``__le__()``, ``__lt__()``, ``__eq__()``,
``__and__()``, ``__or__()``, ``__sub__()``,
``__xor__()``, and ``isdisjoint()``,
:class:`collections.MutableSet` Derived from :class:`Set` and in
addition defines ``add()``,
``clear()``, ``discard()``, ``pop()``,
``remove()``, ``__ior__()``, ``__iand__()``,
``__ixor__()``, and ``__isub__()``
===================================== ========================================
.. XXX Have not included them all and the notes are incomplete
@ -577,3 +584,30 @@ customize a prototype instance::
.. [#] For information on the double-star-operator see
:ref:`tut-unpacking-arguments` and :ref:`calls`.
:class:`UserDict` objects
----------------------
The class, :class:`UserDict` acts as a wrapper around dictionary objects.
The need for this class has been partially supplanted by the ability to
subclass directly from :class:`dict`; however, this class can be easier
to work with because the underlying dictionary is accessible as an
attribute.
.. class:: UserDict([initialdata])
Class that simulates a dictionary. The instance's contents are kept in a
regular dictionary, which is accessible via the :attr:`data` attribute of
:class:`UserDict` instances. If *initialdata* is provided, :attr:`data` is
initialized with its contents; note that a reference to *initialdata* will not
be kept, allowing it be used for other purposes.
In addition to supporting the methods and operations of mappings,
:class:`UserDict` and :class:`IterableUserDict` instances
provide the following attribute:
.. attribute:: UserDict.data
A real dictionary used to store the contents of the :class:`UserDict` class.

View file

@ -1,56 +1,4 @@
:mod:`UserDict` --- Class wrapper for dictionary objects
========================================================
.. module:: UserDict
:synopsis: Class wrapper for dictionary objects.
The module defines a mixin, :class:`DictMixin`, defining all dictionary methods
for classes that already have a minimum mapping interface. This greatly
simplifies writing classes that need to be substitutable for dictionaries (such
as the shelve module).
This also module defines a class, :class:`UserDict`, that acts as a wrapper
around dictionary objects. The need for this class has been largely supplanted
by the ability to subclass directly from :class:`dict` (a feature that became
available starting with Python version 2.2). Prior to the introduction of
:class:`dict`, the :class:`UserDict` class was used to create dictionary-like
sub-classes that obtained new behaviors by overriding existing methods or adding
new ones.
The :mod:`UserDict` module defines the :class:`UserDict` class and
:class:`DictMixin`:
.. class:: UserDict([initialdata])
Class that simulates a dictionary. The instance's contents are kept in a
regular dictionary, which is accessible via the :attr:`data` attribute of
:class:`UserDict` instances. If *initialdata* is provided, :attr:`data` is
initialized with its contents; note that a reference to *initialdata* will not
be kept, allowing it be used for other purposes.
.. note::
For backward compatibility, instances of :class:`UserDict` are not
iterable.
.. class:: IterableUserDict([initialdata])
Subclass of :class:`UserDict` that supports direct iteration (e.g. ``for key in
myDict``).
In addition to supporting the methods and operations of mappings (see section
:ref:`typesmapping`), :class:`UserDict` and :class:`IterableUserDict` instances
provide the following attribute:
.. attribute:: IterableUserDict.data
A real dictionary used to store the contents of the :class:`UserDict` class.
:mod:`UserList` --- Class wrapper for list objects
==================================================