[Python-Dev] accumulator display syntax

Greg Ewing greg at cosc.canterbury.ac.nz
Tue Oct 21 19:49:48 EDT 2003


Michael Hudson <mwh at python.net>:

> In particular what happens if the iteration variable is a local in the
> frame anyway?  I presume that would inhibit the renaming

Why?

> but then code like 
> 
> def f(x):
>     r = [x+1 for x in range(x)]
>     return r, x
> 
> becomes even more incomprehensible (and changes in behaviour).

Anyone who writes code like that *deserves* to have the
behaviour changed on them!

If this is really a worry, an alternative would be to
simply forbid using a name for the loop variable that's
used for anything else outside the loop. That could
break existing code too, but at least it would break
it in a very obvious way by making it fail to compile.

Greg Ewing, Computer Science Dept, +--------------------------------------+
University of Canterbury,	   | A citizen of NewZealandCorp, a	  |
Christchurch, New Zealand	   | wholly-owned subsidiary of USA Inc.  |
greg at cosc.canterbury.ac.nz	   +--------------------------------------+



More information about the Python-Dev mailing list