zoukankan      html  css  js  c++  java
  • 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))
  • 相关阅读:
    memcached基础与配置详解
    最小化安装CentOS基础命令
    源码编译redis及解决三个开机告警问题
    HAProxy之一----HAPproxy配置参数详解
    HAProxy之二----HAProxy实现高级负载均衡实战和ACL控制
    6 SQL语言——distinct去重
    5 SQL语言——连接符
    04 Oracle Sql语言API
    03 Oracle——用户密码忘记重置
    02 Oracle——账号管理
  • 原文地址:https://www.cnblogs.com/jinpingzhao/p/12584527.html
Copyright © 2011-2022 走看看