python的偏函数functools.partial

通过设定函数参数的默认值,可以降低函数调用的难度,偏函数刚好可以做到这一点。
int()可以把字符串转换为整数,默认转化成十进制

>>> int('123456')
123456

也可以传入两个参数:

>>> int('123456', base=8) #base是需要转成的进制,此处是8进制
42798

如果每次转成的都是同一个进制,那每次都需要传入base参数,这样就有点繁琐了。当然我们可以写成一个新的函数:

>>> def int1(x, base=2):
...     return int(x, base)
...
>>> int1('10000000')
128
>>> int1('10000001')
129
>>>

而偏函数functools.partial就是用来帮助我们创建偏函数的,免去我们自定义函数

>>> import functools
>>> int2 = functools.partial(int, base=2)
>>> int2('11000000') #此处base默认值是2
192
>>> int2('11000001')
193
>>> int2('11000001', base=8) #我们在调用的时候还可以改变base的值
2359297
>>> int2('11000001', base=10)
11000001
>>>

使用偏函数求最大值

>>> max2 = functools.partial(max, 10) #此出传入10的意思是,无论max2传什么参数都把10加入左侧
>>> max2(1, 2, 11) #最大值11
11
>>> max2(1, 2, 3) #最大值10
10
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值