Rationale behind the deprecation of __getslice__?

Carl Banks imbosol at aerojockey.com
Thu Dec 9 23:30:06 CET 2004

Fernando Perez wrote:
> I was wondering if someone can help me understand why __getslice__
has been
> deprecated, yet it remains necessary to implement it for simple
slices (i:j),
> while __getitem__ gets called for extended slices (i:j:k).
> The problem with this approach, besides a bit of code duplication, is
> classes which implement slicing must now do runtime type-checking
> __getitem__.

I'm pretty sure it's to support multidimensional array slicing.
Consider an array reference such as a[1,2:5,4,6:9,10:].  Now what do
you do?  You have mixed slices and indices.  The
__getslice__/__getitem__ paradigm isn't versatile enough to handle this
situation.  In that light, I'd say checking for slices is the lesser

As for why list objects still use getslice--they probably shouldn't.
I'd file a bug report.


More information about the Python-list mailing list