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 valueprint(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 ssum_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==0mod_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))
来源:https://www.cnblogs.com/jinpingzhao/p/12584527.html