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 つの属性が必要であると記載されているため、上記の関数定義にこれらが含まれている理由はわかりますが、それらが達成する具体的な目標はまだわかりません。func
args
keywords