E731不分配lambda表达式,使用def

E731不分配lambda表达式,使用def,第1张

E731不分配lambda表达式,使用def

您遇到的PEP-8中的建议是:

始终使用def语句代替将lambda表达式直接绑定到名称的赋值语句。

是:

def f(x): return 2*x

没有:

f = lambda x: 2*x

第一种形式表示结果函数对象的名称专门为“ f”,而不是通用的“
”。通常,这对于回溯和字符串表示形式更为有用。使用赋值语句消除了lambda表达式可以提供的优于显式def语句的唯一好处(即,它可以嵌入较大的表达式中)

将lambda分配给名称基本上只是复制了

def
-的功能-通常,最好以单一方式进行 *** 作以避免混淆并增加清晰度。

lambda的合法用例是您要在不分配函数的情况下使用它,例如:

sorted(players, key=lambda player: player.rank)

通常,反对这样做的主要理由是

def
语句将导致更多的代码行。我对此的主要回应是:是的,这很好。除非您是打高尔夫球的人,否则不应该减少行数:一目了然。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5616525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存