更新时间:2022-09-01 来源:黑马程序员 浏览量:
简单来说,Python中的匿名函数就是没有名称的函数,也就是不再使用def定义的函数。如果要声明匿名函数,则需要使用lambda关键字,匿名函数的声明格式如下:
lambda 参数列表:表达式
定义好的匿名函数不能直接使用,最好使用一个变量保存它,以便后期可以随时使用这个函数。下面是定义和调用匿名函数的示例代码,具体如下。
add = lambda a, b: a+b # 调用add函数 print("运行结果:", add(10, 20)) print("运行结果:", add(20, 20))
运行结果如图6-20所示。
图6-20 运行结果
需要注意的是,使用lambda声明的匿名函数能接收任何数量的参数,但只能返回一个表达式的值。此外,由于匿名函数的函数体只是一个表达式,它不能直接使用print()函数。
在某些场景下,匿名函数非常有用。假设之前我们要对两个数进行运算,如果希望声明的函数支持所有的运算,可以将匿名函数作为函数参数传递。接下来,通过一个案例来演示,如例6-11所示。
例6-11 匿名函数-1
def func(a, b, operation): print("a=%d"%a) print("b=%d"%b) print("result=", operation(a,b)) func(11, 22, lambda x, y:x +y) print("-------------------") func(11, 22, lambda x, y:x - y)
运行结果如图6-21所示。
图6-21 运行结果
注意:
与使用def定义的普通函数相比,使用lambda定义的匿名函数有很多不同的地方。
(1)普通函数在定义时是有名称的,而匿名函数没有函数名称,这是最明显的区别之一。
(2)普通函数的函数体中可以包含多条语句,而匿名函数的函数体中只有一个表达式,要简单很多。
(3)普通函数的函数体中可以使用if、for等语句,而匿名函数中不可以使用。
(4)普通函数一般用于实现复杂的功能,而匿名函数只能实现简单的功能。
(5)普通函数可以被其它程序调用,而匿名函数不能共享给其它程序使用。