您遇到的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语句将导致更多的代码行。我对此的主要回应是:是的,这很好。除非您是打高尔夫球的人,否则不应该减少行数:一目了然。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)