美文网首页
python 偏函数

python 偏函数

作者: 倔强的潇洒小姐 | 来源:发表于2019-06-02 21:56 被阅读0次

    functools.partial:
    把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数

    场景:当函数的参数个数太多,需要简化时,可以用偏函数

    转换二进制字符串:
    麻烦写法:

    >>> def int2(x, base=2):
    ...     return int(x, base)
    ...
    >>> int2('1000000')
    64
    >>> int2('1000001')
    65
    

    简单写法:利用偏函数

    >>> from functools import partial
    >>> int2 = partial(int, base=2)
    >>> int2('1000000')
    64
    >>> int2('1000010001')
    529
    

    补充说明:
    1、偏函数:实际上可以接收函数对象、*args和**kw这3个参数

    int2 = partial(int, base=2)
    

    上述代码实际上固定了int()函数的关键字参数base,所以

    int2('10010')
    

    相当于

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

    下述代码实际上会把10作为*args的一部分自动加到左边

    max2 = functools.partial(max, 10)
    

    所以

    max2(5, 6, 7)
    

    相当于

    args = (10, 5, 6, 7)
    max(*args)
    



    2、int()函数还提供额外的base参数,默认值为10。如果传入base参数,就可以做N进制的转换

    image.png

    相关文章

      网友评论

          本文标题:python 偏函数

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