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.