summaryrefslogtreecommitdiffstats
path: root/Doc/lib
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2000-04-03 03:51:50 (GMT)
committerFred Drake <fdrake@acm.org>2000-04-03 03:51:50 (GMT)
commita22b576d05d7f7b8f70341268a46c219a3fd6a9c (patch)
tree4bd02723e714a446c55cd14f0340f4aaaa6c4e0f /Doc/lib
parente3ba931aa439fdfe69f1c1c750ce06427f5f607b (diff)
downloadcpython-a22b576d05d7f7b8f70341268a46c219a3fd6a9c.zip
cpython-a22b576d05d7f7b8f70341268a46c219a3fd6a9c.tar.gz
cpython-a22b576d05d7f7b8f70341268a46c219a3fd6a9c.tar.bz2
UserString class from Peter Funk <pf@artcom-gmbh.de>.
Diffstat (limited to 'Doc/lib')
-rw-r--r--Doc/lib/libuserdict.tex49
1 files changed, 49 insertions, 0 deletions
diff --git a/Doc/lib/libuserdict.tex b/Doc/lib/libuserdict.tex
index 8e47360..1768f65 100644
--- a/Doc/lib/libuserdict.tex
+++ b/Doc/lib/libuserdict.tex
@@ -63,3 +63,52 @@ provide the following attribute:
A real Python list object used to store the contents of the
\class{UserList} class.
\end{memberdesc}
+
+
+\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 behaviours to strings.
+
+The \module{UserString} module defines the \class{UserString} class:
+
+\begin{classdesc}{UserString}{\optional{sequence}}
+Return a class instance that simulates a string or an 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.
+supporting.
+\end{classdesc}
+
+In addition to supporting the methods and operations of string or
+unicode objects (see section \ref{typesseq}), \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}
+
+\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
+\function{__hash__} method in order to trap attempts to use a
+mutable object as dictionary key, which would be otherwise very
+errorprone and hard to track down.
+\end{classdesc}