7

我想编写一个 python 函数,它使用+运算符添加所有参数。未指定参数数量:

def my_func(*args):
    return arg1 + arg2 + arg3 + ...

我该怎么做?

最好的祝福

4

3 回答 3

16

只需使用sum内置函数

>>> def my_func(*args):
...     return sum(args)
...
>>> my_func(1,2,3,4)
10
>>>

编辑:

我不知道你为什么要避免 sum,但我们开始吧

>>> def my_func(*args):
...   return reduce((lambda x, y: x + y), args)
...
>>> my_func(1,2,3,4)
10
>>>

lambda您也可以使用operator.add代替。


编辑2:

我查看了您的其他 问题,看来您的问题是用作使用自定义类时sumkey参数。max回答了您的问题,并在我的回答中提供了一种使用您的课程的方法sum

于 2012-07-17T10:06:58.167 回答
5

这个怎么样:

def my_func(*args):
    my_sum = 0
    for i in args:
        my_sum += i
    return my_sum

如果您不想使用+=运算符,那么

my_sum = my_sum + i
于 2012-07-17T10:15:35.420 回答
2

如果您绝对不会使用sum,那么类似:

def func(*args, default=None):
    from operator import add
    try:
        return reduce(add, args)
    except TypeError as e:
        return default

functools.reduce在 Py3 中

于 2012-07-17T10:56:59.590 回答