\section{Standard Modules \sectcode{UserDict} and \sectcode{UserList}}
Each of these modules defines a class that acts as a wrapper around
either dictionary or list objects.  They're useful base classes for
your own dictionary-like or list-like classes, which can inherit from
them and override existing methods or add new ones.  In this way one
can add new behaviours to dictionaries or lists.

\renewcommand{\indexsubitem}{(in module UserDict)}
The \code{UserDict} module defines the \code{UserDict} class:

\begin{funcdesc}{UserDict}{}
Return a class instance that simulates a dictionary.  The instance's
contents are kept in a regular dictionary, which is accessible via the
\code{data} attribute of \code{UserDict} instances.
\end{funcdesc}

\renewcommand{\indexsubitem}{(in module UserList)}
The \code{UserList} module defines the \code{UserList} class:

\begin{funcdesc}{UserList}{\optional{list}}
Return a class instance that simulates a list.  The instance's
contents are kept in a regular list, which is accessible via the
\code{data} attribute of \code{UserList} instances.  The instance's
contents are initially set to c copy of \var{list}, defaulting to the
empty list \code{[]}.  \var{list} can be either a regular Python list,
or an instance of \code{UserList} (or a subclass).
\end{funcdesc}
