这有点奇怪。我想在调用之前动态初始化函数的一部分参数。但出于某种原因,我不想上课。让我们说我有一个功能:
def inner(a,b,c):
"a,b,c do something"
return result
在我正式称之为之前,我想在某处初始化它:
partInitalAbc=inner(,b,c)
然后我将它用作:
result=partInitialAbc(a)
请注意我想动态地这样做。就像使用构造函数初始化类时一样,此时装饰器可能不适合......
任何人都有一些想法吗?
答案 0 :(得分:0)
听起来你正在寻找functools.partial
:
返回一个新的
partial
对象,该对象在调用时将使用位置参数 args 和关键字参数 keywords 调用 func 。
如果将参数传递给partial
作为位置参数,它们将出现在参数列表的开头,这不是您想要的。关键字参数使您可以更好地控制传递哪些参数:
partInitialAbc = functools.partial(inner, b=b_value, c=c_value);