python 匿名函数、闭包、装饰器总结

​ 匿名函数:没有函数名称的、临时使用的微函数。

通过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函数中:

如果内层函数引用了外层函数的变量(包括其参数),外层函数返回内层函数名,这种函数架构为闭包。

猜你喜欢

转载自blog.csdn.net/m0_52226803/article/details/121168132