loop scope

Josiah Carlson jcarlson at nospam.uci.edu
Mon Mar 15 20:53:35 CET 2004

>    t = f(a/c)
>    ... # and then later,
>    sl = [t * t for t in range(3)]
> In this case, I would argue that it's an error for t to escape
> the expression scope _because_ it's used outside that scope -
> actually I think that was where we came in.  My personal view
> is that a list comprehension should have its own internal scope,
> period, but is that what `intuition' would lead most Python
> programmers to expect?  I don't know.

 From what I understand, the above case is taken care of in Python 2.4

In the case of:

t = f(a/c)
... # and then later,
s1 = []
for t in range(3):
     s1.append(t * t)

The behavior is unchanged in 2.4, t gets rebound.

  - Josiah

More information about the Python-list mailing list