python - 如何操作函数以获取新参数?
问题描述
我想知道如何在不修改原始公式的情况下操纵函数以在 Python 中获取新参数。
例如,我将如何使用平方函数并使用平方函数作为模型制作另一个函数,例如乘方:
原始功能:
def square(x):
result = (x*x)
return(result)
新函数,接受一个新参数“y”:
def multSquare(x,y):
result = y*square(x)
return(result)
我尝试使用装饰器,但似乎无法正常工作
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。
最后,我想创建一个函数,它接受原始函数的所有参数加上一个参数。
谢谢大家!
解决方案
如果您注意参数的顺序,发生的情况是您将 3 平方并乘以 2。这是因为您的函数wrapArg
使用第一个参数 ( 2
) 作为要相乘的数字,第二个 ( 3
) 作为你正在平方的数字。
multSquare(3, 2)
会给出你想要的结果。
推荐阅读
- java - 修改对象的实例数据的任何东西都被认为是突变体,还是突变体这个术语比这更具体?
- influxdb - 创建 Kapacitor 警报错误
- php - 无法找到数据未从数据库中删除的原因
- powershell - Get-ADUser -Properties 不为所有用户返回 PasswordNeverExpires
- php - Laravel 传递数据来查看
- sql - 使用 SQL Server 2012 生成包含一天中各小时的日历表
- php - 目前无法处理此请求。HTTP 错误 500
- javascript - Javascript Flask URL_for不正确的重定向
- xpath - Xpath 或 CSS : 尝试创建任何一个
- firebase - 如何从 Firebase Cloud Function 发出 Axios 请求