techfix

前言

我们平时工作工程中接触到的函数都是通过关键字 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'

更多技术交流可以关注我的公众号:猿桌派

分类:

技术点:

相关文章: