Python中的Lambda表达式

Python中的Lambda表达式,python,Python,lambda表达式在Python中可以有多行吗?就像普通函数一样 我可以这样做吗 res = lambda x y: z = x**2 + 5 z + x + y (我知道这个函数可以写在一行上,这是一个例子)IMHO,你不能 如果lambda函数中需要一些临时变量,作为一种难看的解决方法,您可以执行以下操作: res = lambda x,y : [ z**2 + z**4 + z for z in [x**2+5]][0] 有关lambda表达式的有趣示例,请查看 尽管

lambda表达式在Python中可以有多行吗?就像普通函数一样

我可以这样做吗

res = lambda x y:
    z = x**2 + 5
    z + x + y
(我知道这个函数可以写在一行上,这是一个例子)

IMHO,你不能

如果lambda函数中需要一些临时变量,作为一种难看的解决方法,您可以执行以下操作:

res = lambda x,y : [ z**2 + z**4 + z  for z in [x**2+5]][0]

有关lambda表达式的有趣示例,请查看


尽管您绝对应该为此使用函数。

它们可以跨多行分割,这与任何表达式可以跨多行分割的规则相同。您可以使用反斜杠
\
来防止以换行符结束当前语句,或者使用允许在各种形式的括号中使用换行符的事实:
()
[]
{}

然而,lambda表达式只是一个表达式。它不能包含赋值语句(或任何其他语句)


精确的细节由定义。

不,它们不能;只需使用常规的
def
lambda
函数的主要目的是可以在线定义它。如果您想使用多行函数,只需使用带有
def
的正则函数即可;它不能包含任何语句,更不用说多个语句了。这将输出到标准输出并返回
[None]