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 ...
Get Python in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.