In article <4a28903b.4020...@sweetapp.com>,
 Brian Quinlan <br...@sweetapp.com> wrote:
> Scott David Daniels wrote:
> [snipped]
> > When you evaluate a lambda expression, the default args are evaluated,
> > but the expression inside the lambda body is not.  When you apply that
> > evaluated lambda expression, the expression inside the lambda body is
> > is evaluated and returned.
> 
> But that's not really the issue. I knew that the lambda was not 
> evaluated but thought each generator expression got its own context 
> rather than sharing one.

Each?  Maybe that's a source of confusion.  There is only one generator 
expression in your example.

>>> c = (lambda : i for i in range(11, 16))
>>> c
<generator object <genexpr> at 0x114e90>
>>> d = list(c)
>>> d
[<function <lambda> at 0x119348>, <function <lambda> at 0x119390>, 
<function <lambda> at 0x1193d8>, <function <lambda> at 0x119420>, 
<function <lambda> at 0x119468>]

-- 
 Ned Deily,
 n...@acm.org

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to