Python functools部分定义

时间:2015-02-08 15:03:26

标签: python higher-order-functions functools

the functools documentation开始,partial功能“大致相当于”

def partial(func, *args, **keywords):
    def newfunc(*fargs, **fkeywords):
        newkeywords = keywords.copy()
        newkeywords.update(fkeywords)
        return func(*(args + fargs), **newkeywords)
    newfunc.func = func
    newfunc.args = args
    newfunc.keywords = keywords
    return newfunc

但是,我不明白需要行

    newfunc.func = func
    newfunc.args = args
    newfunc.keywords = keywords

在定义中。如果我创建一个没有这三行的partial函数,它的行为与包含这些行的定义完全相同。文档页面说明partial对象必须具有三个属性funcargskeywords,所以我可以看到为什么上面的函数定义包含这些,但我仍然没有看到他们完成了什么切实的目标。

0 个答案:

没有答案