前言
我们平时工作工程中接触到的函数都是通过关键字 def + 函数名() 来定义的,那么,定义函数能不能没有名字,这样我们就不必担心函数名太多冲突了^_^。
Lambda 表达式
答案是肯定的,在Python中,我们通过lambda关键字来定义匿名函数,什么是匿名函数,匿名函就是没有名字的函数,匿名函数也是一个函数对象,也可以赋值给变量,在利用变量来调用函数。
比如一个简单的函数,接受两个参数,返回两个参数相减的值,我们普通的定义函数如下:
def func(x,y): return x-y
那我们用lambda 来表示呢,就相当简单,一行即可:
lambda x,y: x-y
x,y 表示 Lambda表达式(匿名函数)接受两个参数 x,y,并返回x-y的值。
lambda 表达式也可以赋值给变量,再利用变量来调用函数。
>>> f = lambda x,y:x-y >>> f <function <lambda> at 0x107ac3d08> >>> f(7,2) 5 >>> func(7,2) 5
当然 ,lambda 也能表示没有参数的函数,看下面示例:
func(): return 'hello' 等同于: lambda : 'hello' >>> y = lambda : 'hello' >>> y() 'hello'
更多技术交流可以关注我的公众号:猿桌派