a little trap revealed (was Re: Let's Talk About Lambda Functions!)

Gerald Squelart squelart at hotmail.nospam.com
Sun Jul 28 01:50:01 EDT 2002


"Erik Max Francis" <max at alcyone.com> wrote
> Michele Simionato wrote:
> > I know a print statement cannot stay in a lambda function, however as
> > a newbie I ask : why ?
> Because a lambda is an expression, not a statement.
Therefore, a lambda *expects* an expression, not a statement.

However, you could indirectly include a print statement in the course of a running
lambda expression:
def printArg(arg):
    print arg
    return arg
l = lambda x: printArg(x)
a = l(10) # will print 10 and assign 10 to a
map(l, range(5)) # will print numbers 0 to 4 and return [0, 1, 2, 3, 4]
It may be useful to debug a lamdba expression.

Cheers,
Gerald.





More information about the Python-list mailing list