Python 之匿名函数和偏函数

本文深入探讨Python中的匿名函数及偏函数的概念、用途及应用实例,通过具体代码展示如何利用lambda表达式简化代码,以及如何使用偏函数简化函数调用,提升编程效率。

匿名函数与偏函数

 

匿名函数

Python允许使用lambda关键字创造匿名函数,lambda表达式用于定义匿名函数,它返回可调用的函数对象,语法如下:

lambda arg1, arg2, … : expression
例如;

add = lambda a,b=2 : a+b

print(add(3))       # 5
print(add(3, 10))   # 13

 

匿名函数具有比较浓郁的函数式编程风格,例如:

foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print filter(lambda x: x % 3 == 0, foo)
print map(lambda x: x % 3 == 0, foo)

使用lambda表达式,可以避免定义函数,从而使得代码更简洁。

 


 

偏函数

Python中的函数参数可以带默认值,这样能够降低函数调用的复杂度,例如:

def add(a, b, c=100):
    return a+b+c

print(add(40, 30))  # 170

 

当函数的参数个数太多,需要简化时,使用偏函数(functools.partial)可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单

from functools import partial

def add(a, b, c=100):
    return a+b+c


plus = partial(add, c=100)

print(plus(40, 30))     # 170
print(plus(-20, 30))    # 110

 

上面的例子中partial(add, c=100)使用了关键字参数c=100,如果只是简单的使用partial(add, 100),那么100做为位置参数,会被认为是参数a的固定值,。例如:

from functools import partial

def add(a, b, c=100):
    return a+b+c


plus = partial(add, 100)

print(plus(40))     # 240
print(plus(40, 50)) # 190

这里,plus(40),传入的40会被赋值给b,而c使用默认参数100;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值