[Python-Dev] PEP 340 - possible new name for block-statement

Nick Coghlan ncoghlan at gmail.com
Fri Apr 29 10:58:03 CEST 2005

Guido van Rossum wrote:
> How about, instead of trying to emphasize how different a
> block-statement is from a for-loop, we emphasize their similarity?

If you want to emphasise the similarity, the following syntax and explanation is 
something that occurred to me during lunch today:

Python offers two variants on the basic iterative loop.

   "for NAME from EXPR:" enforces finalisation of the iterator. At loop 
completion, a well-behaved iterator is always completely exhausted. This form 
supports block management operations, that ensure timely release of resources 
such as locks or file handles.
   If the values being iterated over are not required, then the statement may be 
simplified to "for EXPR:".

   "for NAME in EXPR:" skips the finalisation step. At loop completion, a 
well-behaved iterator may still contain additional values. This form allows an 
iterator to be consumed in stages.

Regardless of whether you like the above or not, I think the PEP's proposed use 
of 'as' is incorrect - it looks like the variable should be referring to the 
expression being iterated over, rather than the values returned from the iterator.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list