如何操作函数以获取新参数?

2024-09-30 02:18:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何在Python中操作一个函数来获取新的参数,而不修改原始公式。在

例如,我如何使用平方函数,并使用平方函数作为模型来生成另一个类似于乘平方的函数:

原始功能:

def square(x):
 result = (x*x)
 return(result)

新函数,接受新参数“y”:

^{pr2}$

我试过用装饰器,但似乎没法用

def addArg(tarFun):
 def wrapArg(y, *args, **kwargs):
  result=tarFun(*args, **kwargs) * y
  return result
 return wrapArg

def square(x):
 result = (x*x)
 return(result)

multSquare = addArg(square)

print(square(2)) # This should be 4
print(multSquare(2,3)) # This should be 12

因为我不知道怎么注射y

最后,我想创建一个函数,它接受原始函数的所有参数再加上一个参数。在

谢谢大家!在


Tags: 函数参数returndefargsresultthiskwargs
2条回答

如果你注意你论点的顺序,发生的事情是你把3平方,然后乘以2。这是因为您的函数wrapArg使用第一个参数(2)作为相乘的数字,第二个参数(3)作为要平方的数字。在

multSquare(3, 2)将得到您想要的结果。在

除了busybear说的,你可以交换参数

def addArg(fun):
    def wrapArg(x, y):
        result = fun(x) * y
        return result
    return wrapArg


def square(x):
    result = (x * x)
    return(result)


multSquare = addArg(square)

print(square(2))  # This should be 4
print(multSquare(2, 3))  # This should be 12

或者只使用可选参数

^{pr2}$

相关问题 更多 >

    热门问题