Rationale behind the deprecation of __getslice__?

Steven Bethard steven.bethard at gmail.com
Fri Dec 10 16:42:16 EST 2004


Nick Coghlan wrote:
> Steven Bethard wrote:
> 
>> Carl Banks wrote:
>>
>>> Wouldn't it work to have __getslice__ call __getitem__?  And, since
>>> that would be too much of a performance hit, have it check whether its
>>> type is list (or str or tuple), and only call __getitem__ if it is not
>>> (i.e., only for subclasses).  I don't think that would be too bad.
>>>
>>> Subclasses would still be free to override __getslice__, but wouldn't
>>> have to.
>>
>>
>> Yeah, that doesn't seem like it would be too bad.  Probably someone 
>> would have to actually run some benchmarks to see what kind of 
>> performance hit you get...  But it would definitely solve the OP's 
>> problem...
> 
> 
> It might be better handled at construction time - if the class supplied 
> to __new__ is a subclass of the builtin type, swap the __getslice__ 
> implementation for one which delegates to __getitem__.

Yeah, that seems like the minimally invasive solution...  I looked a bit 
at the listobject.c code, but I think the patch for this one is a bit 
over my head...

Steve



More information about the Python-list mailing list