通过在其上包装旧函数来创建具有较小参数的新函数

时间:2017-01-05 04:17:14

标签: python python-3.x function wrapper

假设我有一个旧函数oldFunction(first, second, third)。并且,所有参数都是强制性的。我想弃用“第二个”参数的使用,也不要在我的项目中的任何地方更改代码。

我想创建一个完全相同的新函数,只有第一个和第三个参数。

我正在考虑使用旧函数作为包装器来包装新函数。我怎么可能这样做?因此,我将只能使用两个参数的新函数,但是当用旧名称调用时,是否会调用新函数(因为它被包装)?

我该怎么做?

2 个答案:

答案 0 :(得分:2)

定义newFunction(x,y)后,您可以将oldFunction重新定义为:

def oldFunction(x,y,z):
    return newFunction(x,z)

答案 1 :(得分:0)

为什么不使用关键字参数?这样,您可以同时拥有:

def function(a, b, c=None):
    pass

您可以将其命名为function(a, b),也可以命名为function(a, b, c)