[Python-Dev] Lambda [was Re: PEP 8 modernisation] (original) (raw)

Steven D'Aprano steve at pearwood.info
Thu Aug 1 17:06:18 CEST 2013


Hi Alexander,

On 02/08/13 00:48, Alexander Shorin wrote:

Hi Ronald,

I understand this, but I'm a bit confused about fate of lambdas with such guideline since I see no more reasons to use them with p.9 statement: long lines, code duplicate, no mock and well tests etc. - all these problems could be solved with assigning lambda to some name, but now they are looks useless (or useful only for very trivial cases)

Lambda is still useful for the reason lambda has always been useful: it is an expression, not a statement, so you can embed it directly where needed.

Preferred:

sorted(data, key=lambda value: value['spam'].casefold())

Allowed:

def f(value): return value['spam'].casefold() sorted(data, key=f)

Prohibited:

f = lambda value: value['spam'].casefold() sorted(data, key=f)

SyntaxError:

sorted(data, key=def f(value): value['spam'].casefold())

-- Steven



More information about the Python-Dev mailing list