[Python-Dev] bool(iter([])) changed between 2.3 and 2.4

Raymond Hettinger raymond.hettinger at verizon.net
Thu Sep 22 07:12:10 CEST 2005


[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



More information about the Python-Dev mailing list