Why is __getslice__ still implemented?

Steven Bethard steven.bethard at gmail.com
Tue Apr 10 10:35:56 EDT 2007


Torsten Bronger wrote:
> Hallöchen!
> 
> According to <http://docs.python.org/ref/sequence-methods.html>,
> __getslice__ is deprecated.  At the moment, I derive an own class
> from unicode and want to implement my own slicing.  I found that I
> have to override __getslice__ since __getitem__ isn't called when I
> have something like my_instance[a:b] in my code.
> 
> According to
> <news:mailman.7438.1102640455.5135.python-list at python.org>, this may
> have efficiency reasons, however, I agree with
> news:1102645919.114898.139820 at f14g2000cwb.googlegroups.com that this
> is quite confusing.  It forces people to implement a deprecated
> function after all.  I think the docs should say that you still have
> to override __getslice__ when subclassing from a built-in type,
> unless I really don't understand the issue correctly.

Yes, you do still need to implement __getslice__ if you're subclassing 
a class (like unicode or list) which provides it. The __getslice__ 
method can't be removed entirely for backwards compatibility reasons 
(though it is being removed in Python 3000). If you have a specific 
suggestion for what doc should be updated and how, that would be 
helpful. Please post it to:

     http://sourceforge.net/tracker/?group_id=5470&atid=105470

(It doesn't need to be a real patch. Plain text is fine as long as you 
indicate where in the documentation it needs to go.)

Steve



More information about the Python-list mailing list