gpt4 book ai didi

python - 如何返回带有向后参数的新函数

转载 作者:太空狗 更新时间:2023-10-30 02:07:17 24 4
gpt4 key购买 nike

我想用 Python 编写一个函数。给定一个函数,返回一个新函数,该函数反向运行原始函数。
例如输入函数funcpow , 所以 func(2, 3) = 8. 返回的新函数会做 pow(3,2) = 9。

我在另一个 post 中找到了这个解决方案

def flip(func):
'Create a new function from the original with the arguments reversed'
@wraps(func)
def newfunc(*args):
return func(*args[::-1])
return newfunc

有没有办法在没有 @wrap 的情况下做到这一点? ?参数的数量未知。它可以是任何类型: int , string .所以我想要的函数只接受一个参数,即原始函数的名称。
reverse_args(f)

调用时, *args 将遵循:
reverse_args(func)(*args)

最佳答案

如果这是您唯一的疑问:@wraps不需要装饰器。
它所做的是向它标记的包装函数添加一些元数据,以便它更类似于它包装的原始函数。一方面,它会覆盖包装器(在本例中为 newfunc )__name__属性,使其在打印时看起来与原始属性相同,或者如果是 repr被看到。

反转参数序列的是 args[::-1]部分,以及 *运算符,它将参数分发回来。

关于python - 如何返回带有向后参数的新函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com