Python functools模块学习总结
文档地址
functools.partial
作用:
functools.partial通过包装手法,允许我们"重新定义"函数签名
用一些默认参数包装一个可调用对象,返回结果是可调用对象,并且可以像原始对象一样对待
冻结部分函数位置函数或关键字参数,简化函数,更少更灵活的函数参数调用
#args/keywords调用partial时参数 defpartial(func,*args,**keywords): defnewfunc(*fargs,**fkeywords): newkeywords=keywords.copy() newkeywords.update(fkeywords) returnfunc(*(args+fargs),**newkeywords)#合并,调用原始函数,此时用了partial的参数 newfunc.func=func newfunc.args=args newfunc.keywords=keywords returnnewfunc
声明:
urlunquote=functools.partial(urlunquote,encoding='latin1')
当调用urlunquote(args,*kargs)
相当于urlunquote(args,*kargs,encoding='latin1')
E.g:
importfunctools
defadd(a,b): returna+b
add(4,2) 6
plus3=functools.partial(add,3) plus5=functools.partial(add,5)
plus3(4) 7 plus3(7) 10
plus5(10) 15