Sept. 22, 2005
5:12 a.m.
[Guido]
I strongly feel that this needs to be corrected in 2.5. Iterators should have neither __len__ nor __nonzero__.
Right. I'll get it fixed-up. [Terry Reedy]
I presume there were two reasons: internal efficiency of preallocations (list(some_it) for example)
[Guido]
This could have been implemented without making the implementation details public.
I see a way to do that by renaming the __len__ method to some private name for internal use. This would preserve the performance gains while still restoring the public API. Raymond