[Python-Dev] Allowing slicing of iterators

Nick Coghlan ncoghlan at iinet.net.au
Tue Jan 25 14:41:32 CET 2005


Batista, Facundo wrote:
> I think that breaking the common idiom...
>> for e in something[:]:
> something.remove(e)
>> is a no-no...

The patch doesn't change existing behaviour - anything which is already 
sliceable (e.g. lists) goes through the existing __getitem__ or __getslice__ 
code paths.
All the patch adds is two additional checks (the first for an iterator, the 
second for an iterable) before PyObject_GetItem fails with the traditional 
"TypeError: unsubscriptable object".
Defining __getitem__ also allows any given iterator or iterable type to override 
the default slicing behaviour if they so choose.
Regards,
Nick.
-- 
Nick Coghlan | ncoghlan at email.com | Brisbane, Australia
---------------------------------------------------------------
 http://boredomandlaziness.skystorm.net


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /