[Python-Dev] PEP 340 - For loop cleanup, and feature separation

Ron Adam rrr at ronadam.com
Fri May 6 19:59:20 CEST 2005


Phillip J. Eby wrote:
> At 01:58 PM 5/6/2005 +1000, Delaney, Timothy C (Timothy) wrote:
> 
>>Personally, I'm of the opinion that we should make a significant break
>>(no pun intended ;) and have for-loops attempt to ensure that iterators
>>are exhausted.
> 
> 
> This is simply not backward compatible with existing, perfectly valid and 
> sensible code.
> Therefore, this can't happen till Py3K.
> 
> The only way I could see to allow this is if:
> 
> 1. Calling __iter__ on the target of the for loop returns the same object
> 2. The for loop owns the only reference to that iterator.
> 
> However, #2 is problematic for non-CPython implementations, and in any case 
> the whole thing seems terribly fragile.

Is it better to have:
	1. A single looping construct that does everything,
	2. or several more specialized loops that are distinct?

I think the second may be better for performance reasons. So it bay 
would better to just add a third loop construct just for iterators.

	a.  for-loop -->iterable sequences and lists only
         b.  while-loop --> bool evaluations only
         c.  do-loop --> iterators only

Choice c. could mimic a. and b. with an iterator when the situation 
requires a for-loop or while-loop with special handling.

Ron_Adam


More information about the Python-Dev mailing list