Python学习笔记|偏函数

Bruce
2023-12-24 / 0 评论 / 14 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年12月24日,已超过148天没有更新,若内容或图片失效,请留言反馈。

偏函数可以通过设定参数的默认值,降低函数调用的难度。functools.partial就是帮助我们创建一个偏函数。

import functools
int2 = functools.partial(int, base = 2)
int2('1000')
8

这个函数等价于:

# 转换二进制字符串
# int函数默认将字符串转换为整数,base默认为10。如果传入base参数,就可以做n进制转换。
def int2(x, base = 2):
    return int(x, base)
int2('1000')
8

总结:functools.partial函数作用是将一个函数的某个参数给固定住(也就是设置一个默认值),返回一个新的函数,调用这个新函数会更加简单。

int2函数中,仅仅把base参数重新设置为默认值2,但也可以在函数调用时传入其他参数。

int2('1234', base = 8)
668

创建偏函数的时候,可以接受函数对象*args**kw这三个参数,当传入int2 = functools.partial(int, base = 2),就固定住了int函数的关键字参数base

int2('10010')
18
kw = {'base':2}
int('10010',**kw)
18

当传入:

max2  = functools.partial(max, 10)

10会作为*args的一部分自动加到左边。也就是:

max2(5,6,7)
10

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

0

评论 (0)

取消