[Python-Dev] PEP 8: Discourage named lambdas?

Terry Reedy tjreedy at udel.edu
Sat May 3 01:03:55 CEST 2008


Some people write
    somename = lambda args: expression
instead of the more obvious (to most people) and, dare I say, standard
    def somename(args): return expression

The difference in the result (the only one I know of) is that the code and 
function objects get the generic name '<lambda>' instead of the more 
informative (in repr() output or tracebacks) 'somename'.  I consider this a 
disadvantage.

In the absence of any compensating advantages (other than the trivial 
saving of 3 chars), I consider the def form to be the proper Python style 
to the point I think it should be at least recommended for the stdlib in 
the Programming Recommendations section of PEP 8.

There are currently uses of named lambdas at least in urllib2.  This to me 
is a bad example for new Python programmers.

What do our style mavens think?

Terry Jan Reedy







More information about the Python-Dev mailing list