python学习之偏函数partial

天涯浪子 提交于 2020-03-27 23:08:56

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))
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!