gpt4 book ai didi

python - 根据 lambda 表达式定义命名函数和使用 `def` 之间有区别吗?

转载 作者:行者123 更新时间:2023-11-28 20:35:56 25 4
gpt4 key购买 nike

根据 lambda 表达式定义命名函数与使用 def 有区别吗?

比如下面两种方式是否定义了两个等价的函数?

adder = lambda x, y: x+y

def adder(x,y):
return x+y

谢谢。

最佳答案

在结构上它们是等价的。但是,来自 PEP 8 :

Always use a def statement instead of an assignment statement that binds a lambda expression directly to an identifier.

Yes: def f(x): return 2*x

No: f = lambda x: 2*x

The first form means that the name of the resulting function object is specifically 'f' instead of the generic 'lambda'. This is more useful for tracebacks and string representations in general. The use of the assignment statement eliminates the sole benefit a lambda expression can offer over an explicit def statement (i.e. that it can be embedded inside a larger expression

因此,这意味着为了更简洁的代码,您应该只使用嵌入较大表达式的 lambda,而不是为它们分配一个对象,在这种情况下,美观整洁的好处被上述缺点所淹没。

关于python - 根据 lambda 表达式定义命名函数和使用 `def` 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46080960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com