• python学习之偏函数partial


    partial 一共有三个部分:
    (1)第一部分也就是第一个参数,是一个函数,这个函数可以是你定义的,也可以是Python内置函数
    (2)第二部分是一个可变参数,*args,
    (3)第三部分是一个关键字参数 **args,
    partial函数的作用就是:将所作用的函数作为partial()函数的第一个参数,
    原函数的各个参数依次作为partial()函数的后续参数,原函数有关键字参数的一定要带上关键字,
    没有的话,按原有参数顺序进行补充。

    Python版本3.6
    from functools import partial

    def sum_add(*args1):
    def decorator(func):
    def my_sum(*args2):
    my_s=0
    for n in args1:
    my_s+=n
    return func(*args2)+my_s
    return my_sum
    return decorator

    @sum_add(10,20)
    def test_sum(*args):
    value=0
    for i in args:
    value+=i
    return value

    print(test_sum(1,2,3,4,5))
    #########################以上通过带参数装饰器,获得1+2+3+4+5+10+20 列子

    def sum(*args):
    s=0
    for n in args:
    s=s+n
    return s

    sum_add_10=partial(sum,10)
    sum_add_10_20=partial(sum,10,20)
    print(sum)
    print(partial(sum,10))
    print(sum_add_10(1,2,3,4,5))
    print(sum_add_10_20(1,2,3,4,5))
    print('*'*50)
    #############################偏函数列子1##########################
    L=list(range(1,11))
    slice_5_10=partial(slice,5,10) #slice内置函数slice(start,stop,step) 函数实现切片对象,主要用在切片操作函数里的参数传递。
    print(L[slice_5_10()])

    print('*'*50)
    #############################偏函数列子2##########################

    def mod(m,key=2):
    return m%key==0

    mod_to_2=partial(mod,key=2)
    print(mod(6))
    print(mod_to_2(3))

    mod_to_5=partial(mod,key=5)
    print(mod(25,key=5))
    print(mod_to_5(35))
  • 相关阅读:
    刚装的ESET NOD32无法更新
    借ISA东风,安全发布多个网站
    ASP.NET写入XML访问被拒绝
    ADOBE CS3 序列号
    IEPLUS(IE增强性插件)
    joomla 1.5 笔记
    joomla与drupal内核差异分析
    Drupal修改默认后台地址(D6)
    drupal7指定menu高亮问题
    Drupal6 邮件群发到指定角色
  • 原文地址:https://www.cnblogs.com/jinpingzhao/p/12584527.html
Copyright © 2020-2023  润新知