python函数中任意数量的参数是什么作用的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)

我想学习如何在python函数中传递任意数量的参数,所以我按递归方式编写了一个简单的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])

你想要做的就是打开那些展开的参数吧:

return args[-1] + mySum(*args[:-1])
                        ^---- note the asterisk
用户回答回答于

如果你不想递归就执行这段代码:

def mySum(*args):
sum = 0
for i in args:
        sum = sum + i
return sum

扫码关注云+社区

领取腾讯云代金券