The UserList, UserDict, and UserString Modules
The
UserList, UserDict, and
UserString modules each supply one class, with the
same name as the respective module, that implements all the methods
needed for the class’s instances to be mutable
sequences, mappings, and strings, respectively. When you need such
polymorphism, you can subclass one of these classes and override some
methods rather than have to implement everything yourself. In Python
2.2 and later, you can subclass built-in types
list, dict, and
str directly, to similar effect (see Section 5.2). However, these modules can still be handy if
you need to create a classic class in order to keep your code
compatible with Python 2.1 or earlier.
Each
instance of one of these classes has an attribute called
data that is a Python object of the corresponding
built-in type (list, dict, and
str, respectively). You can instantiate each class
with an argument of the appropriate type (the argument is copied, so
you can later modify it without side effects).
UserList and UserDict can also
be instantiated without arguments to create initially empty
containers.
Module UserString also supplies class
MutableString, which is very similar to class
UserString except that instances of
MutableString are mutable. Instances of
MutableString and its subclasses cannot be keys
into a dictionary. Instances of both UserString
and MutableString can be Unicode strings rather than plain strings: just use a Unicode string as the initializer argument ...