| \section{\module{UserDict} --- | 
 |          Class wrapper for dictionary objects} | 
 |  | 
 | \declaremodule{standard}{UserDict} | 
 | \modulesynopsis{Class wrapper for dictionary objects.} | 
 |  | 
 | This module defines a class that acts as a wrapper around | 
 | dictionary objects.  It is a useful base class for | 
 | your own dictionary-like classes, which can inherit from | 
 | them and override existing methods or add new ones.  In this way one | 
 | can add new behaviors to dictionaries. | 
 |  | 
 | The \module{UserDict} module defines the \class{UserDict} class: | 
 |  | 
 | \begin{classdesc}{UserDict}{\optional{initialdata}} | 
 | Class that simulates a dictionary.  The instance's | 
 | contents are kept in a regular dictionary, which is accessible via the | 
 | \member{data} attribute of \class{UserDict} instances.  If | 
 | \var{initialdata} is provided, \member{data} is initialized with its | 
 | contents; note that a reference to \var{initialdata} will not be kept,  | 
 | allowing it be used used for other purposes. | 
 | \end{classdesc} | 
 |  | 
 | In addition to supporting the methods and operations of mappings (see | 
 | section \ref{typesmapping}), \class{UserDict} instances provide the | 
 | following attribute: | 
 |  | 
 | \begin{memberdesc}{data} | 
 | A real dictionary used to store the contents of the \class{UserDict} | 
 | class. | 
 | \end{memberdesc} | 
 |  | 
 |  | 
 | \section{\module{UserList} --- | 
 |          Class wrapper for list objects} | 
 |  | 
 | \declaremodule{standard}{UserList} | 
 | \modulesynopsis{Class wrapper for list objects.} | 
 |  | 
 |  | 
 | This module defines a class that 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 \module{UserList} module defines the \class{UserList} class: | 
 |  | 
 | \begin{classdesc}{UserList}{\optional{list}} | 
 | Class that simulates a list.  The instance's | 
 | contents are kept in a regular list, which is accessible via the | 
 | \member{data} attribute of \class{UserList} instances.  The instance's | 
 | contents are initially set to a copy of \var{list}, defaulting to the | 
 | empty list \code{[]}.  \var{list} can be either a regular Python list, | 
 | or an instance of \class{UserList} (or a subclass). | 
 | \end{classdesc} | 
 |  | 
 | In addition to supporting the methods and operations of mutable | 
 | sequences (see section \ref{typesseq}), \class{UserList} instances | 
 | provide the following attribute: | 
 |  | 
 | \begin{memberdesc}{data} | 
 | A real Python list object used to store the contents of the | 
 | \class{UserList} class. | 
 | \end{memberdesc} | 
 |  | 
 | \strong{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. | 
 |  | 
 | \versionchanged[Python versions 1.5.2 and 1.6 also required that the | 
 |                 constructor be callable with no parameters, and offer | 
 |                 a mutable \member{data} attribute.  Earlier versions | 
 |                 of Python did not attempt to create instances of the | 
 |                 derived class]{2.0} | 
 |  | 
 |  | 
 | \section{\module{UserString} --- | 
 |          Class wrapper for string objects} | 
 |  | 
 | \declaremodule{standard}{UserString} | 
 | \modulesynopsis{Class wrapper for string objects.} | 
 | \moduleauthor{Peter Funk}{pf@artcom-gmbh.de} | 
 | \sectionauthor{Peter Funk}{pf@artcom-gmbh.de} | 
 |  | 
 | This module defines a class that acts as a wrapper around string | 
 | objects.  It is a useful base class for your own string-like classes, | 
 | which can inherit from them and override existing methods or add new | 
 | ones.  In this way one can add new behaviors to strings. | 
 |  | 
 | It should be noted that these classes are highly inefficient compared | 
 | to real string or Unicode objects; this is especially the case for | 
 | \class{MutableString}. | 
 |  | 
 | The \module{UserString} module defines the following classes: | 
 |  | 
 | \begin{classdesc}{UserString}{\optional{sequence}} | 
 | Class that simulates a string or a Unicode string | 
 | object.  The instance's content is kept in a regular string or Unicode | 
 | string object, which is accessible via the \member{data} attribute of | 
 | \class{UserString} instances.  The instance's contents are initially | 
 | set to a copy of \var{sequence}.  \var{sequence} can be either a | 
 | regular Python string or Unicode string, an instance of | 
 | \class{UserString} (or a subclass) or an arbitrary sequence which can | 
 | be converted into a string using the built-in \function{str()} function. | 
 | \end{classdesc} | 
 |  | 
 | \begin{classdesc}{MutableString}{\optional{sequence}} | 
 | This class is derived from the \class{UserString} above and redefines | 
 | strings to be \emph{mutable}.  Mutable strings can't be used as | 
 | dictionary keys, because dictionaries require \emph{immutable} objects as | 
 | keys.  The main intention of this class is to serve as an educational | 
 | example for inheritance and necessity to remove (override) the | 
 | \method{__hash__()} method in order to trap attempts to use a | 
 | mutable object as dictionary key, which would be otherwise very | 
 | error prone and hard to track down. | 
 | \end{classdesc} | 
 |  | 
 | In addition to supporting the methods and operations of string and | 
 | Unicode objects (see section \ref{string-methods}, ``String | 
 | Methods''), \class{UserString} instances provide the following | 
 | attribute: | 
 |  | 
 | \begin{memberdesc}{data} | 
 | A real Python string or Unicode object used to store the content of the | 
 | \class{UserString} class. | 
 | \end{memberdesc} |