码迷,mamicode.com
首页 > 编程语言 > 详细

partial函数-python学习

时间:2014-10-02 00:18:41      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   for   sp   div   2014   art   

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

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

a is:2 b is 3 c is 2
7
a is:9 b is 10 c is 2
21

 

 

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

#coding:utf-8
‘‘‘
Created on 2014-10-1
@author: zkchen
‘‘‘
from functools import partial
PARAMS=("__doc__",)
def update_params(target,source,params=PARAMS):
    #将target的在PARAMS中提到的属性设置为source的
    [setattr(target,p,getattr(source,p,None)) for p in PARAMS]
    return target
def 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

 

partial函数-python学习

标签:style   blog   color   ar   for   sp   div   2014   art   

原文地址:http://www.cnblogs.com/zkchen/p/4003570.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!