3

documentationからfunctools関数は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

定義で。これらの 3 行なしで関数を作成するpartialと、それらの行を含む定義とまったく同じように動作します。ドキュメント ページには、オブジェクトには、、およびpartialの 3 つの属性が必要であると記載されているため、上記の関数定義にこれらが含まれている理由はわかりますが、それらが達成する具体的な目標はまだわかりません。funcargskeywords

4

0 に答える 0