[Python-Dev] accumulator display syntax

Guido van Rossum guido at python.org
Tue Oct 21 18:14:19 EDT 2003


> >[name withheld]
> > > The implementation could synthesize a generator function abusing default
> > > arguments to give the generator's frame locals with the same names.

[Guido]
> >Yes, I think that could work -- I see no way that something invoked by
> >the generator expression could possibly modify a variable binding in
> >the surrounding scope.

[Samuele]
> so this, if I understand:
>> def h():
> y = 0
> l = [1,2]
> it = (x+y for x in l)
> y = 1
> for v in it:
> print v
>> will print 1,2 and not 2,3
>> unlike:
>> def h():
> y = 0
> l = [1,2]
> def gen(S):
> for x in S:
> yield x+y
> it = gen(l)
> y = 1
> for v in it:
> print v

Argh. Of course.
No, I think it should use the actual value of y, just like a nested
function.
Never mind that idea then.
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /