[Python-Dev] PEP 8: Discourage named lambdas? (original) (raw)

Steven steve at pearwood.info
Sat May 3 02:04:37 CEST 2008


On Fri, 2 May 2008 19:03:55 -0400 "Terry Reedy" <tjreedy at udel.edu> 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 [...] 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?

Speaking as one of those "some people", my position is that functions created with lambda are first-class objects the same as everything else in Python, and a rule that says "You must not assign a lambda to a name, ever" would be a terrible rule.

(And I don't do it to save three characters. I don't do it often, and I can't exactly articulate why I do it, only that I do it when it feels right. It's a style thing.)

However, I'm happy for "no named lambdas" to be a guideline or recommendation. I'm even happy for a stronger prohibition to apply to the standard library. I don't dislike named lambdas, but I don't expect others to like them.

-- Steven D'Aprano



More information about the Python-Dev mailing list