Greg Ewing wrote:
> Guido van Rossum wrote:
>
>> Actually, the autowrapping was intended a backwards compatibility measure.
>
> But it seems like a perfectly good and useful feature
> in its own right to me. Why force every sequence to
> implement its own __iter__ if there is a default one
> that does the same as what your custom one would have
> done anyway?
The standard sequence iterator should still be somewhere in the standard
library (e.g. as itertools.seqiter). This could then be used by assigning it
as the __iter__ method in a class definition, or to a tp_iter slot through the
C API.
The fallback shouldn't be in iter() itself because falling back on the
sequence iterator is a bug when __getitem__ and __len__ are used to implement
a mapping.
Alternatively, if a mechanism is introduced to allow a class to explicitly
flag itself as "I'm a sequence", then iter() could be changed to only use the
sequence iterator if that marker was set.
Cheers,
Nick.
--
Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia
---------------------------------------------------------------
http://www.boredomandlaziness.org
_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe:
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com