首页技术文章正文

Python培训:匿名函数与普通函数相比的区别

更新时间:2022-09-01 来源:黑马程序员 浏览量:

  简单来说,Python中的匿名函数就是没有名称的函数,也就是不再使用def定义的函数。如果要声明匿名函数,则需要使用lambda关键字,匿名函数的声明格式如下:

lambda 参数列表:表达式

  定义好的匿名函数不能直接使用,最好使用一个变量保存它,以便后期可以随时使用这个函数。下面是定义和调用匿名函数的示例代码,具体如下。

add = lambda a, b: a+b
# 调用add函数
print("运行结果:", add(10, 20))
print("运行结果:", add(20, 20))

  运行结果如图6-20所示。

1661996969859_匿名函数运行结果1.jpg

  图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所示。

1661997670833_匿名函数运行结果2.jpg

  图6-21 运行结果

  注意:

  与使用def定义的普通函数相比,使用lambda定义的匿名函数有很多不同的地方。

  (1)普通函数在定义时是有名称的,而匿名函数没有函数名称,这是最明显的区别之一。

  (2)普通函数的函数体中可以包含多条语句,而匿名函数的函数体中只有一个表达式,要简单很多。

  (3)普通函数的函数体中可以使用if、for等语句,而匿名函数中不可以使用。

  (4)普通函数一般用于实现复杂的功能,而匿名函数只能实现简单的功能。

  (5)普通函数可以被其它程序调用,而匿名函数不能共享给其它程序使用。

分享到:
在线咨询 我要报名
和我们在线交谈!