
On Monday 20 October 2003 04:30 pm, Guido van Rossum wrote:
We are indeed sure (sadly) that list comprehensions leak control variable names.
But they shouldn't. It can be fixed by renaming them (e.g. numeric names with a leading dot).
Hmmm, sorry?
[.2 for .2 in range(3)] SyntaxError: can't assign to literal
I think I don't understand what you mean.
We can hardly be sure of what iterator comprehensions would be defined to do, given they don't exist, but surely we can HOPE that in an ideal world where iterator comprehensions were part of Python they would not be similarly leaky:-).
It's highly likely that the implementation will have to create a generator function under the hood, so they will be safely contained in that frame.
And there will be much rejoicing...!-) Alex