[Python-Dev] PEP 8: Discourage named lambdas?
Michael Foord
fuzzyman at voidspace.org.uk
Sun May 4 01:56:05 CEST 2008
Terry Reedy wrote:
> 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
>
Visually I find the second form very ugly.
The colon indicates to me that a new line is expected, and breaking that
expectation breaks my flow of code reading.
I very *rarely* use lambdas in the form you show, but where you do I
prefer them to the single line function.
Michael Foord
> 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
>
>
>
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk
>
More information about the Python-Dev
mailing list