Python只使用动态函数模仿类的构造函数

时间:2015-04-15 02:22:12

标签: python

这有点奇怪。我想在调用之前动态初始化函数的一部分参数。但出于某种原因,我不想上课。让我们说我有一个功能:

def inner(a,b,c):
"a,b,c do something"
return result

在我正式称之为之前,我想在某处初始化它:

partInitalAbc=inner(,b,c)

然后我将它用作:

result=partInitialAbc(a)

请注意我想动态地这样做。就像使用构造函数初始化类时一样,此时装饰器可能不适合......

任何人都有一些想法吗?

1 个答案:

答案 0 :(得分:0)

听起来你正在寻找functools.partial

  

返回一个新的partial对象,该对象在调用时将使用位置参数 args 和关键字参数 keywords 调用 func

如果将参数传递给partial作为位置参数,它们将出现在参数列表的开头,这不是您想要的。关键字参数使您可以更好地控制传递哪些参数:

partInitialAbc = functools.partial(inner, b=b_value, c=c_value);
相关问题