a = b = 1 just syntactic sugar?
tjreedy at udel.edu
Sun Jun 8 02:51:26 CEST 2003
"Ed Avis" <ed at membled.com> wrote in message
news:l1wufxh9g8.fsf at budvar.future-i.net...
> Steven Taschuk <staschuk at telusplanet.net> writes:
> >We already have closures, don't we?
> > >>> def f(x):
> > ... def g(y):
> > ... return x + y
> > ... return g
> > ...
> > >>> q = f(3)
> > >>> q(4)
> > 7
> Which Python version does this require?
2.1 with future statement, 2.2 without
> (The machine to hand has only 1.5.2, although normally I use 2.2 or
Upgrade if you can.
> I mean things like
> def make_adder():
> x = 0
> def incr():
> x += 1
> return x
> return incr
> f = make_adder()
> g = make_adder()
> print f(), f(), g(), g() # 1 2 1 2
You can read but not rebind variable in outer scope. But this works:
counter = 
counter += 1
>>> print c1(), c1(), c2(), c2()
1 2 1 2
Terry J. Reedy
More information about the Python-list