我听说不能在Python中添加多行lambda,因为它们在语法上会与Python中的其他语法 struct 冲突.我今天在公交车上思考这个问题,意识到我想不出一个多行lambda与之冲突的Python构造.考虑到我对这门语言非常熟悉,这让我很惊讶.

现在,我相信Guido在语言中不包含多行lambdas是有原因的,但出于好奇:在什么情况下包含多行lambda会有歧义?我听说的是真的吗,或者Python不允许多行lambdas的原因有其他原因吗?

推荐答案

请看以下内容:

map(multilambda x:
      y=x+1
      return y
   , [1,2,3])

这是一个返回(y, [1,2,3])的lambda(因此map只得到一个参数,导致错误)吗?或者它返回y?或者是语法错误,因为新行上的逗号放错了位置?Python如何知道您想要什么?

在parens中,缩进对python来说并不重要,因此不能明确地使用多行.

这只是一个简单的例子,可能还有更多的例子.

Python相关问答推荐

如何获取Django REST框架中序列化器内部的外卡属性?

基本链合同的地址是如何计算的?

symy.分段使用numpy数组

Python plt.text中重叠,包adjust_text不起作用,如何修复?

如何根据条件在多指标框架上进行groupby

抓取rotowire MLB球员新闻并使用Python形成表格

管道冻结和管道卸载

将pandas Dataframe转换为3D numpy矩阵

我们可以为Flask模型中的id字段主键设置默认uuid吗

我如何使法国在 map 中完全透明的代码?

如何使用pytest来查看Python中是否存在class attribution属性?

pyscript中的压痕问题

在np数组上实现无重叠的二维滑动窗口

如何在Python中找到线性依赖mod 2

python中csv. Dictreader. fieldname的类型是什么?'

如果包含特定值,则筛选Groupby

30个非DATETIME天内的累计金额

pandas:在操作pandora之后将pandora列转换为int

使用Python TCP套接字发送整数并使用C#接收—接收正确数据时出错

简单 torch 模型测试:ModuleNotFoundError:没有名为';Ultralytics.yolo';