栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610401.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号