匿名函数:lambda
如果一个函数有一个返回值,并且只有一句代码,可以使用Lambda简化。
匿名函数:定义的函数没有名字。
内存空间:函数 > lambda
语法格式:lambda [参数列表]:表达式
lambda [形参1], [形参2], ... : [单行表达式] 或 [函数调用]
-
lambda的参数可有可无,函数的参数在lambda中完全适用。
-
lambda表达式可以接收任何数量的参数,但只能返回一个表达式的值
# 匿名函数
# 无参有返回值匿名函数
# 1、匿名函数整体就是函数的名字,函数名字()就是调用函数
ret = (lambda: 1 + 1)()
print(ret) # 2
# 2、给匿名函数起一个函数名字,函数名字()就是调用函数
# 给匿名函数起一个名字叫func
func = lambda: 1 + 1
ret = func() # 返回值变量 = 函数名()
print(ret) # 2
# 有参有返回值匿名函数
# 1、直接调用匿名函数
ret = (lambda a, b: a - b)(30, 10)
print(ret) # 20
# 2、先给匿名函数起名,再调用
func = lambda a, b: a - b
ret = func(30, 10)
print(ret) # 20
# 3、无参无返回值,lambda的表达式为函数
lambda : print('hello world')
注意:
1、匿名函数中不能使用while 循环、for循环,只能编写单行的表达式,或函数调用
2、匿名函数中返回结果不需要使用return, 表达式运行的结果就是返回结果
3、匿名函数中也可以不返回结果。例如:lambda : print(‘hello world’)