匿名函数
匿名函数其实就是lambda表达式
定义好的匿名函数不能直接使用,最好使用一个变量保存它,以便后期可以随时使用这个函数。
语法:lambda 形参列表:函数体
匿名函数与普通函数的主要区别如下:
- 普通函数在定义时有名称,而匿名函数没有名称;
- 普通函数的函数体中包含有多条语句,而匿名函数的函数体只能是一个表达式;
- 普通函数可以实现比较复杂的功能,而匿名函数可实现的功能比较简单;
- 普通函数能被其他程序使用,而匿名函数不能被其他程序使用。
# 定义匿名函数,并将它返回的函数对象赋值给变量temp
temp = lambda x : pow(x, 2)
temp(10)
有参数的匿名函数
num1 = lambda x: x ** 3 # 传递一个x,然后给x三次方,并返回
print(num1(2)) # 打印2的三次方
#返回 8
num2 = lambda x, y: x + y # 传递一个x和y,然后给相加,并返回
print(num2(3, 5)) # 打印3+5
#返回 8
匿名函数可以使用默认参数,关键字参数,不定长参数
num1 = lambda x, y=5: x + y # 默认参数
print(num1(2))
#返回 7
print(num1(2, 10))
#返回 12
print(num1(x=8, y=9)) # 关键字参数
#返回 17
num2 = lambda *a: a # 不定长参数 ,*a:代表可以输入多个或者0个值
print(num2(1, 2, 3, 4, 5, 6))
#返回 (1, 2, 3, 4, 5, 6)