[Python-Dev] An issue recently brought up in patch #872326 (generator expression) (original) (raw)

Guido van Rossum guido at python.org
Mon Mar 22 21:48:25 EST 2004


Guido: > A free variable might be a function that itself references globals (or > at least nonlocals) that might change. > > There is also the issue of exceptions:

Greg:

Oviously there will be semantic differences, but the question is whether the consequences of them are serious enough to be worth treating the outermost iterator differently from the others.

I'm disturbed by the number of special rules we seem to be needing to make up in the name of getting generator expressions to DWIM. First we have free variables getting captured, which is unprecedented anywhere else; now we have some iterators being treated more equally than others. I'm getting an "architecture smell" here. Something is wrong somewhere, and I don't think we're tinkering in the right place to fix it properly.

I'm not disagreeing -- I was originally vehemently against the idea of capturing free variables, but Tim gave an overwhelming argument that whenever it made a difference that was the desired semantics.

But I always assumed that the toplevel iterable would be different.

I think I have an idea where the right place is, but I'll leave that to another post. I suspect the idea isn't going to go down well...

--Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-Dev mailing list