你遇到的PEP-8个建议是:
始终使用def语句,而不是
是:
def f(x): return 2*x
否:
f = lambda x: 2*x
第一种形式表示结果的名称
将lambdas赋给名称基本上只是复制了def
%的功能--通常情况下,最好是用单一的方式来避免念力并增加清晰度.
lambda的合法使用情况是,您希望在不分配函数的情况下使用函数,例如:
sorted(players, key=lambda player: player.rank)
通常,反对这样做的主要理由是def
条语句将导致更多的代码行.我对此的主要回应是:是的,这很好.除非你在打高尔夫球,否则最大限度地减少球线数量不是你应该做的事情:简而言之就是清清楚楚.