Discuss / Python / 偏函数-操作参数的装饰器

偏函数-操作参数的装饰器

Topic source

首先看偏函数的官方定义: partial(func, *args, **keywords) - new function with partial application 可以清晰的看到,偏函数接受3个类型参数:函数名,元组,字典 那么所有偏函数操作的参数,都是把全部参数转成以上3种,然后传给原函数处理。

例子: import functools

def test(a=1,b=1): return a + b

new_test = functools.partial(test,a=3,b=4) #偏函数重新修改参数,注意,这种修改 #方式对应的是字典参数! print(new_test(a=3,b=6)) #这个可以运行,字典方式修改参数
print(new_test()) #这个也可以运行,原参数字典没变化 print(new_test(1,2)) #这个不能运行,与partial(test,a=3,b=#4)传入字典参数不符合,所以参数变成了4个。若要成功运行,修改partial(test,a=3,b=4)为partial(test),去掉参数赋值,或者修改test(a=1,b=1)为test(c,d,a=1,b=1)就可以

修正:那么所有偏函数操作的参数,都是把全部参数转成以上2种类型,元组或者字典,然后传给原函数处理。


  • 1

Reply