方法和lambda之间可能存在的差异(差异)是什么?我有一个身份功能,并且奇怪它是如何定义的呢?
def ident(x): return x
ident = lambda x: x
这些在功能上肯定是相同的,但它们的性能或其他方面是否不同?
答案 0 :(得分:0)
两者都做同样的事,但两种方法都不是;第一个是函数,第二个是通过将其赋值给变量来命名的匿名函数。
性能差异可以忽略不计,但更重要的是,lambda 函数只支持表达式,其中def语句可以有 他们身体中任何复杂陈述的组合。唯一的目的 lambda是为了方便起见,通常作为更高阶的参数 函数,如果你将lambda函数赋给一个名字,那就否定了 他们唯一的用例。实际上,虽然它是允许的,但它是明确的 建议不遵守PEP8风格指南 ~juanpa.arrivillaga