Python中使用partial改變方法默認(rèn)參數(shù)實(shí)例

字號:


    這篇文章主要介紹了Python中使用partial改變方法默認(rèn)參數(shù)實(shí)例,本文直接給出使用實(shí)例,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    Python 標(biāo)準(zhǔn)庫中 functools庫中有很多對方法很有有操作的封裝,partial Objects就是其中之一,他是對方法參數(shù)默認(rèn)值的修改。
    下面就看下簡單的應(yīng)用測試。
    代碼如下:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    #python2.7x
    #partial.py
    #authror: orangleliu
    '''
    functools 中Partial可以用來改變一個方法默認(rèn)參數(shù)
    1 改變原有默認(rèn)值參數(shù)的默認(rèn)值
    2 給原來沒有默認(rèn)值的參數(shù)增加默認(rèn)值
    '''
    def foo(a,b=0) :
    '''
    int add'
    '''
    print a + b
    #user default argument
    foo(1)
    #change default argument once
    foo(1,1)
    #change function's default argument, and you can use the function with new argument
    import functools
    foo1 = functools.partial(foo, b=5) #change "b" default argument
    foo1(1)
    foo2 = functools.partial(foo, a=10) #give "a" default argument
    foo2()
    '''
    foo2 is a partial object,it only has three read-only attributes
    i will list them
    '''
    print foo2.func
    print foo2.args
    print foo2.keywords
    print dir(foo2)
    ##默認(rèn)情況下partial對象是沒有 __name__ __doc__ 屬性,使用update_wrapper 從原始方法中添加屬性到partial 對象中
    print foo2.__doc__
    '''
    執(zhí)行結(jié)果:
    partial(func, *args, **keywords) - new function with partial application
    of the given arguments and keywords.
    '''
    functools.update_wrapper(foo2, foo)
    print foo2.__doc__
    '''
    修改為foo的文檔信息了
    '''