在Python, 有两种函数:
1、普通函数def 定义
2、匿名函数lambda 声明
匿名函数是无需使用def定义的函数,只需使用关键字lambda进行声明,且只可使用一次,只有一个返回值
使用lambda表达式创建匿名函数,其语法格式如下:
res = lambda[arg1[,arg2,...,argn]]:expression
参数说明:
res:用于调用lambda表达式
[arg1[,arg2,…,argn]]:可选参数,用于指定要传递的参数列表,多个参数使用逗号“,”分隔
expression:必选参数,用于指定一个实现具体功能的表达式,如果有参数,那么在该表达式中将应用这些参数
注意:使用lambda表达式时,参数可以有多个,用逗号“,”分隔,但是表达式只能有一个,即只能返回一个值
res = lambda x,y:x*y
print(res(5,7))
说明:
lambda x, y是匿名函数的声明部分,而 x * y则是匿名函数的实现部分
def caculate(x, y):
return x * y
print(caculate(5,7))
既然匿名函数那么简洁方便,那是不是匿名函数能直接代替普通函数呢?
答案是否定的,可以比较下他们之间的区别:
1、普通函数使用def声明函数,且需要定义函数名;匿名函数则无需定义函数名,使用lambda关键字即可
2、普通函数可以有多条语句;匿名函数只能有一个表达式
3、普通函数可以用于实现复杂的功能逻辑处理;而匿名函数一般用于实现一些简单的功能
4、函数被多次调用则使用普通函数;单次调用使用匿名函数