On Sep 10, 2:13 pm, Terry Reedy <tjre...@udel.edu> wrote: > Reading the third paragraph out of context, one can miss the restriction > to built-in objects. I had assumed that the conversion using len(), when > available, happened prior to the __getitem__ call.
Yes, that's a common misconception. It is probably based on the current wording of the docs and on the PySequence_GetItem() optimized fast-path for builtin and extension sequences. >From the users point-of-view, the important thing is that it (effectively) occurs in the __getitem__() code, that builtin sequences and extensions support it, and that else where it is optional. Another way of saying it is: if you are ever writing a __getitem__() method in Python (even for a subclass of a builtin sequence), then it is up to you to decide whether to add support for negative indices and slicing. Raymond -- http://mail.python.org/mailman/listinfo/python-list