如何编写一个添加所有参数的python函数?

时间:2012-07-17 10:05:30

标签: python function arguments add

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

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

我该怎么做?

最好的问候

3 个答案:

答案 0 :(得分:13)

只需使用sum内置功能

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

修改

我不知道为什么你要避免求和,但是here we go

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

您可以使用operator.add代替lambda


<强> EDIT2:

我查看了您的other questions,使用自定义时,您的问题似乎是使用sum作为key的{​​{1}}参数类。我answered您的问题,并提供了一种在我的回答中使用max课程的方法。

答案 1 :(得分:4)

这个怎么样:

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

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

my_sum = my_sum + i

答案 2 :(得分:2)

如果你肯定不会使用sum,那么就像:

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

functools.reduce