partial函数 偏函数(partial函数的的形参)

网友投稿 453 2022-09-04


partial函数 偏函数(partial函数的的形参)

一个函数可以有多个参数,而在有的情况下有的参数先得到,有的参数需要在后面的情景中才能知道,python 给我们提供了partial函数用于携带部分参数生成一个新函数。

def add(a,b,c=2): print("a is:%s b is %s c is %s"%(a,b,c)) return a+b+cadd_with_a_b=partial(add,2,3)print(add_with_a_b())# it's 7add_with_a=partial(add,9)print(add_with_a(10))# it's 21#################a is:2 b is 3 c is 2a is:9 b is 10 c is 2

下面一个列子是用partial来生成了一个装饰器,用于修改函数的__doc__为另一个函数的

#coding:utf-8'''Created on 2014-10-1@author: zkchen'''from functools import partialPARAMS=("__doc__",)def update_params(target,source,params=PARAMS): #将target的在PARAMS中提到的属性设置为source的 [setattr(target,p,getattr(source,p,None)) for p in PARAMS] return targetdef update_params_wrap(source): return partial(update_params,source=source,params=PARAMS)def test_partial(): def funcA(): '''this is funcA's doc''' pass @update_params_wrap(funcA) def funcB(): '''this is funcB's doc''' pass print(funcB.__doc__)#################################this is funcA's doc


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Future与Task(future和the future)
下一篇:Java SpringBoot自定义starter详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~