python偏函数_Python 中偏函数的详细介绍

前言

偏函数是将所要承载的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数后续的参数,除非使用关键字参数。

例1

自定义函数时,我们可以通过设定参数的默认值,可以降低函数调用的难度,而偏函数也可以做到这一点。举例如下:

int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换;同时,int()函数还有额外的base参数,默认值为10,如果传入base参数,就可以做N进制的转换:

# 不传入base参数

print('默认按十进制进行转换:',int('1234'))

# 传入base参数,base=2

print('按二进制进行转换:',int('1000000',base=2))

输出结果:

默认按十进制进行转换: 1234

按二进制进行转换: 64

假设要转换大量的二进制字符串,每次都传入int(x, base=2)非常麻烦,于是,我们想到,可以定义一个int2()的函数,默认把base=2传进去:

例1:使用自定义函数实现

def int2(x,base=2):

return int(x,base)

print(int2('1000000'))

print(int2('1010101'))

输出结果:

64

85

例2:使用偏函数实现

import functools

int2=functools.partial(int,base=2)

print(int2('1000000'))

输出结果:

64

总结

创建偏函数时,实际上可以接收函数对象、*args和**kw这3个参数。

当传入:

int2 = functools.partial(int, base=2)

实际固定了关键字参数base=2:

int2('1000000') #base参数=2,输出结果:64

当传入参数非关键字参数时:

max2 = functools.partial(max, 10)

实际上会把10作为参数的一部分自动加到左边,也就是:

import functools

max2 = functools.partial(max, 10)

print(max2(5, 6, 7)) # 输出结果10

# 相当于max(10, 5, 6, 7)

print(max(10, 2, 5, 7)) # 输出结果也是10

最后:当函数的参数个数太多,为方便参数调用,可使用使用functools.partial创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。

Post Views:

8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值