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
想问
newfunc
是调用了 newfunc()
这个函数,然后返回了 func()
函数调用的结果,
那么给 newfunc.func
/newfunc.args
赋值又是什么意思?
是给返回的 func()
函数的调用结果的属性赋值吗?
为了便于直接拿到初始函数,比如:
import functools
int2 = functools.partial(int, base=2)
如果int2这个函数名换成sdfasdf这样一个不容易看出来的变量名,就可以直接用sdfasdf.func来返回初始变量的名字。
有点类似于func.__name__