Python中的偏函数

作者: snlixing | 来源:发表于2019-07-26 16:05 被阅读18次

    Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function),偏函数可以降低我们调用函数的难度。

    下面我们来分别解释一下这三部分的含义:

    (1)第一部分也就是第一个参数,是一个函数,偏函数是将所要承载的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数后续的参数,除非使用关键字参数。这个函数可以是你定义的,也可以是Python内置函数。偏函数实现的功能其实还是建立在原函数基础上的,只是固定了一些参数,以便函数能用更少的参数进行调用。

    (2)第二部分是一个可变参数,*args,比如内置函数max的参数就是一个可变参数,max(1,2,3,4,5)=5

    max2=partial(max,10),这个max2就是个偏函数,这里的 10 显然就是作为 *args 里的值传入的,使得max函数预先有个参数10,然后按左右顺序与max的函数组合成(10,1,2,3,4,5),再求最大值

    (3)第三部分是一个关键字参数,比如内置函数int的第二个参数就是命名关键字参数,默认base=10,表示int转换时默认是10进制的:

    int2偏函数实际上固定了 int() 函数的关键字参数 base

    int2('1000000')

    相当于:

    kw = { 'base': 2 }

    int('1000000', **kw)  # 如果不指明 base=2 而只是传入 2 的话,那么 2 被认为是 *args 的值

    相关文章

      网友评论

        本文标题:Python中的偏函数

        本文链接:https://www.haomeiwen.com/subject/ozzrrctx.html