匿名函数:没有函数名称的、临时使用的微函数。
通过lambda表达式来声明,语法格式为:lambda [arg1 [, arg2, ..., argn]] : 表达式
[arg1 [, arg2, ..., argn]]:表示函数的参数;
表达式:表示函数体。只可以包含一个表达式,计算结果是函数的返回值
lambda表达式不允许包含复杂的语句,可调用其他函数。
举例:
def ssum(a,b):
return a+b
print(ssum(1,2))
转换成函数的形式
ssum=lambda x,y:x+y
print(ssum(1,2))
匿名函数的使用:
1.作为自定义函数的实参:
def fun(a,b,func):
return func(a,b)
print(fun(1,2,lambda x,y:x+y))
2.作为内置函数的实参:
#按姓名字母由大到小排序
info1=sorted(info,key=lambda x:x['name'],reverse=True)
print(info1)
作为 列表 或 字典的元素
举例:
power = [lambda x:x**2, lambda x:x**3, lambda x:x**4]
print(power[0](2), power[1](2), power[2](2)) #4 8 16
dict1={ 11: lambda x:print(x), 22 : lambda x ='SDUTCS':print(x) }
dict1[11]('SDUT') #SDUT
dict1[22]() #SDUTCS
dict1[22]("ABCDE") #ABCDE
闭包---百度百科的定义如下:
闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁
闭包--在Python函数中:
•如果内层函数引用了外层函数的变量(包括其参数),外层函数返回内层函数名,这种函数架构为闭包。