每当我使用lambda表达式时,我都会收到这个pep8警告.不推荐使用lambda表达式吗?如果不是,为什么?

推荐答案

你遇到的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条语句将导致更多的代码行.我对此的主要回应是:是的,这很好.除非你在打高尔夫球,否则最大限度地减少球线数量不是你应该做的事情:简而言之就是清清楚楚.

Python相关问答推荐

如何编写一个正规表达式来查找序列中具有2个或更多相同辅音的所有单词

替换字符串中的点/逗号,以便可以将其转换为浮动

给定数据点,制定它们的关系

pyautogui.locateOnScreen在Linux上的工作方式有所不同

更改Seaborn条形图中的x轴日期时间限制

强制venv在bin而不是收件箱文件夹中创建虚拟环境

拆分pandas列并创建包含这些拆分值计数的新列

将特定列信息移动到当前行下的新行

由于NEP 50,向uint 8添加-256的代码是否会在numpy 2中失败?

将两只Pandas rame乘以指数

如何访问所有文件,例如环境变量

scikit-learn导入无法导入名称METRIC_MAPPING64'

用Python解密Java加密文件

如何从pandas的rame类继承并使用filepath实例化

把一个pandas文件夹从juyter笔记本放到堆栈溢出问题中的最快方法?

Polars asof在下一个可用日期加入

在Python中计算连续天数

Python Pandas—时间序列—时间戳缺失时间精确在00:00

剪切间隔以添加特定日期

如何按row_id/row_number过滤数据帧