gpt4 book ai didi

python - python函数中任意数量的参数

转载 作者:IT老高 更新时间:2023-10-28 20:41:32 25 4
gpt4 key购买 nike

我想学习如何在python函数中传递任意数量的args,所以我用递归的方式写了一个简单的sum函数如下:

def mySum(*args):
if len(args) == 1:
return args[0]
else:
return args[-1] + mySum(args[:-1])

但是当我测试 mySum(3, 4) 时,我得到了这个错误:

TypeError: unsupported operand type(s) for +: 'int' and 'tuple'

有没有人对此有想法并给出一些纠正它的线索?

最佳答案

这一行:

return args[-1] + mySum(args[:-1])

args[:-1] 返回参数元组的切片。我假设您的目标是使用该参数片段递归调用您的函数。不幸的是,您当前的代码只是使用单个对象(切片本身)调用您的函数。

您想要做的是调用那些展开的参数。

return args[-1] + mySum(*args[:-1])
^---- note the asterisk

这种技术称为“unpacking argument lists”,星号有时(非正式地)称为“splat”运算符。

关于python - python函数中任意数量的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13125218/

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