summaryrefslogtreecommitdiffstats
path: root/Doc/library/collections.rst
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2008-02-12 20:03:09 (GMT)
committerRaymond Hettinger <python@rcn.com>2008-02-12 20:03:09 (GMT)
commit53dbe39b46ef42aeef12c6f46f8575a794e20440 (patch)
tree99f15bb4ba51d6e88ad50f462af0ed0235b1d6d5 /Doc/library/collections.rst
parent4513ef8b7a4a684deea0dda23a760f4596a1097c (diff)
downloadcpython-53dbe39b46ef42aeef12c6f46f8575a794e20440.zip
cpython-53dbe39b46ef42aeef12c6f46f8575a794e20440.tar.gz
cpython-53dbe39b46ef42aeef12c6f46f8575a794e20440.tar.bz2
Move UserList to collections.
Diffstat (limited to 'Doc/library/collections.rst')
-rw-r--r--Doc/library/collections.rst48
1 files changed, 45 insertions, 3 deletions
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst
index 493e22a..f70ccb6 100644
--- a/Doc/library/collections.rst
+++ b/Doc/library/collections.rst
@@ -1,9 +1,9 @@
-:mod:`collections` --- High-performance container datatypes
-===========================================================
+:mod:`collections` --- Container datatypes
+==========================================
.. module:: collections
- :synopsis: High-performance datatypes
+ :synopsis: Container datatypes
.. moduleauthor:: Raymond Hettinger <python@rcn.com>
.. sectionauthor:: Raymond Hettinger <python@rcn.com>
@@ -663,3 +663,45 @@ In addition to supporting the methods and operations of mappings,
.. attribute:: UserDict.data
A real dictionary used to store the contents of the :class:`UserDict` class.
+
+
+
+:class:`UserList` objects
+-------------------------
+
+This class acts as a wrapper around list objects. It is a useful base class
+for your own list-like classes which can inherit from them and override
+existing methods or add new ones. In this way, one can add new behaviors to
+lists.
+
+The need for this class has been partially supplanted by the ability to
+subclass directly from :class:`list`; however, this class can be easier
+to work with because the underlying list is accessible as an attribute.
+
+.. class:: UserList([list])
+
+ Class that simulates a list. The instance's contents are kept in a regular
+ list, which is accessible via the :attr:`data` attribute of :class:`UserList`
+ instances. The instance's contents are initially set to a copy of *list*,
+ defaulting to the empty list ``[]``. *list* can be any iterable, for
+ example a real Python list or a :class:`UserList` object.
+
+In addition to supporting the methods and operations of mutable sequences,
+:class:`UserList` instances provide the following attribute:
+
+.. attribute:: UserList.data
+
+ A real :class:`list` object used to store the contents of the
+ :class:`UserList` class.
+
+**Subclassing requirements:** Subclasses of :class:`UserList` are expect to
+offer a constructor which can be called with either no arguments or one
+argument. List operations which return a new sequence attempt to create an
+instance of the actual implementation class. To do so, it assumes that the
+constructor can be called with a single parameter, which is a sequence object
+used as a data source.
+
+If a derived class does not wish to comply with this requirement, all of the
+special methods supported by this class will need to be overridden; please
+consult the sources for information about the methods which need to be provided
+in that case.