匿名函数lambda-学习笔记

# 匿名函数:

# 用途:
# 1、用于将常用表达式简洁的写成匿名函数形式
# 2、可用列表将多个匿名函数捆绑在一起,从而通过列表位置索引来调用

# 差异:
# 1、定义函数时,使用关键字lambda,而不是def
# 2、匿名函数的主体只能是一个语句,普通函数则可由多个语句构成
# 3、普通函数调用的结果可通过return关键字任意指定返回值,
  # 而匿名函数调用结果只能是其语句计算后的结果值
# 4、匿名函数没有函数名,只能通过定义时赋值的变量来调用
# 5、匿名函数不能在主体内定义变量变量值

# 相同:
# 1、和普通函数一样,匿名函数也有自己的命名空间,也分内部和外部变量
# 2、匿名函数也可以设置必选参数、可选参数、不定长参数(元组形式、字典形式)


# 案例1(创建并调用匿名函数):
Sum=lambda a, b: a + b # 冒号前的a、b是参数,冒号后则是语句,返回值就是计算结果
print(f'这是匿名函数Sum的计算结果:' + str(Sum(1, 2)))
print('分割线:------')


# 案例2(变量访问顺序相同):
# 先为两个全局变量赋值,然后为函数变量 d 赋予新值,从而创建局部变量,对比输出结果
c=3
d=4

def NormalFunc(d):
    print(f'这是普通函数调用的变量值:{c,d}')

LambdaFunc=lambda d:print(f'这是匿名函数调用的变量值:{c,d}')

NormalFunc(5)
LambdaFunc(5)
print('分割线:------')
# 将普通函数与匿名函数的变量d值重新赋值为5,可以发现他们都优先调用了新创建的局部变量值


# 案例3(捆绑多个匿名函数):
FuncList=[lambda a,b:a+b,
          lambda a,b:a-b,
          lambda a,b:a*b]

print(f'调用列表中第一个lambda函数后的值:{FuncList[0](1,2)}')
print(f'调用列表中第二个lambda函数后的值:{FuncList[1](1,2)}')
print(f'调用列表中第三个lambda函数后的值:{FuncList[2](1,2)}')
print('分割线:------')


# 案例4(匿名函数参数设置):
Fun1 = lambda a, b, c: print(a, b, c)                       # 必选参数
Fun2 = lambda a=1, b = 2, c = 3: print(a, b, c)               # 可选参数
Fun3 = lambda *a: print(a)                                  # 不定长参数(元组形式)
Fun4 = lambda **a: print(a)                                 # 不定长参数(字典形式)

Fun1(1, 2, 3)
Fun2(2)
Fun1(a = 1, c = 3, b = 2)                                       #关键字参数
Fun3(1, 2, 3)
Fun4(a = 1, b = 2, c = 3)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值