
在Python中,你可以用def关键字定义普通函数,用lambda关键字定义lambda函数。你可以在需要函数对象的地方使用Lambda函数。
什么是Python lambda函数?
Python lambda 只是另一种定义函数的方法,有一点不同:它一般是单行函数。Lambda 函数可以有零个或多个参数,但它只有一个表达式。
Python 中的 lambda 函数也被称为匿名函数,因为它的定义没有名字。
语法
lambda arguments: expression
lambda 函数的返回值是这个表达式被评估的值。
例子
fun = lambda x: x * x
print(fun(3))
输出值
9
如果你检查lambda的类型,那么它返回一个类函数。要检查一个变量的数据类型,请使用 type() 函数。
fun = lambda x: x * x
print(type(fun))
输出
<class 'function'>
现在,一个价值百万的问题是,你能在Python中写一个多行的lambda函数吗?让我们来讨论这个问题。
你能写Python lambda多行吗?
不,你不能在Python中写多行lambda。lambda 函数只能有一个表达式。这个问题的一个逻辑答案是,如果你想写多行函数,那么你应该在Python中使用正则函数;为什么要去写多行lambdas。
Guido van Rossum(Python的创造者)在他的一篇博文中回答了这个确切的问题。所以他承认这在理论上是可能的,但解决方案不是Pythonic的方式来做。
即使你想这样做,然后如果你写的话,就会变得很难看,所以解决方案是做一个大括号表达式。
lambda: (
chaosWalking('tom'),
quitePlace(2),
blackWidow('SJ'))
这是在Python中写多行lambda函数的一种非pythonic 方式。
lambda 函数的产生是为了方便你写短的解决方案。如果成为超过一行简单代码的东西,你最好使用一个标准的函数定义。
这就是Python多行lambda函数教程的内容。