The following methods can be defined to emulate sequence or mapping
objects. The first set of methods is used either to emulate a
sequence or to emulate a mapping; the difference is that for a
sequence, the allowable keys should be the integers k for which
0 <= k < N
where N is the length of the
sequence, and the method __getslice__() (see below) should be
defined. It is also recommended that mappings provide methods
keys(), values(), items(),
has_key(), get(), clear(), copy(),
and update() behaving similar to those for
Python's standard dictionary objects; mutable sequences should provide
methods append(), count(), index(),
insert(), pop(), remove(), reverse()
and sort(), like Python standard list objects. Finally,
sequence types should implement addition (meaning concatenation) and
multiplication (meaning repetition) by defining the methods
__add__(), __radd__(), __mul__() and
__rmul__() described below; they should not define
__coerce__() or other numerical operators.
>=
0. Also, an object that doesn't define a
__nonzero__() method and whose __len__() method
returns zero is considered to be false in a Boolean context.
self[key]
.
For a sequence types, the accepted keys should be integers. Note that the
special interpretation of negative indices (if the class wishes to
emulate a sequence type) is up to the __getitem__() method.
self[key]
. Same
note as for __getitem__(). This should only be implemented
for mappings if the objects support changes to the values for keys, or
if new keys can be added, or for sequences if elements can be
replaced.
self[key]
. Same
note as for __getitem__(). This should only be implemented
for mappings if the objects support removal of keys, or for sequences
if elements can be removed from the sequence.