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

问题描述 投票:2回答:2

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

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

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

我怎样才能做到这一点?

python python-3.x function wrapper
2个回答
2
投票

一旦你定义了newFunction(x,y),你就可以将oldFunction重新定义为:

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

0
投票

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

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

你可以称之为function(a, b)function(a, b, c)

© www.soinside.com 2019 - 2024. All rights reserved.