前言
在Python中,可以使用def 关键字定义函数,使用def定义的关键字是有名称的,在调用时可以重复使用.还有一种是使用lambda关键字进行函数的定义,这个方式定义的函数是匿名函数,只能临时使用一次
本文主要讲解lambda匿名函数
lambda匿名函数的定义
lambda 形参: 函数体
注意:匿名函数的函数体只能写一行,无法写入多行代码
lambda匿名函数的使用
例如:
def test(func): ret = func(1, 2) print(f"ret = {ret}") test(lambda x, y: x + y) # 输出结果: ret = 3
执行逻辑:
使用lambda匿名函数可以直接帮你把结果返回给调用对象,因此不需要写return语句.
刚才提到了lambda匿名函数中的方法体只能写一行代码,否则就会报错.
使用lambda匿名函数写一个计算器
看到这是不是感觉lambda匿名函数挺奇怪的,可读性也不好,那它为什么要设置它呢?
存在即合理,其实使用lambda匿名函数也是做很多事情.我们在后面的学习中也会大量使用到lambda表达式 .就比如我们要写一个加减乘除的计算器,但只能在一个方法完成加减乘除的运算.这个时候就可以使用lambda表达式
看代码:
def func(compote, x, y): ret = compote(x, y) print(f"ret = {ret}") func(lambda x, y: x + y, 6, 2) func(lambda x, y: x - y, 6, 2) func(lambda x, y: x * y, 6, 2) func(lambda x, y: x // y, 6, 2)
运行截图:
可以看到这种方法只需要使用写一个方法,便可完整加减乘除的运算. 就是传入参数时比较麻烦.而不使用这种方式,写四个计算的函数也可以完成.相较于使用lambda表达式来说则是定义函数时比较麻烦.大家看需求使用即可.
总结
lambda表达式还是很重要的,在后面的学习中我们也会大量使用到lambda匿名函数.