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

alw*_*btc 5 python arguments function add

我想编写一个python函数,使用+operator 添加所有参数.未指定参数数量:

def my_func(*args):
    return arg1 + arg2 + arg3 + ...
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

最好的祝福

slo*_*oth 14

只需使用sum内置函数

>>> def my_func(*args):
...     return sum(args)
...
>>> my_func(1,2,3,4)
10
>>>
Run Code Online (Sandbox Code Playgroud)

编辑:

我不知道你为什么要避免求和,但我们走了:

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

而不是lambda你也可以使用operator.add.


EDIT2:

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

  • @alwbtc - 你为什么不想? (4认同)

Som*_*ude 5

这个怎么样:

def my_func(*args):
    my_sum = 0
    for i in args:
        my_sum += i
    return my_sum
Run Code Online (Sandbox Code Playgroud)

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

my_sum = my_sum + i
Run Code Online (Sandbox Code Playgroud)

  • 通过将my_sum = args [0]替换为my_sum = 0并将args [1:]中的for循环替换为sum(),可以使其与sum()不同。现在,这适用于具有明智的__add__方法的任何对象列表。 (2认同)