[Python-Dev] Lambda [was Re: PEP 8 modernisation]

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