Python中的Lambda表达式
lambda表达式在Python中可以有多行吗?就像普通函数一样 我可以这样做吗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表达式的有趣示例,请查看 尽管
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]
。