我想编写一个 python 函数,它使用+
运算符添加所有参数。未指定参数数量:
def my_func(*args):
return arg1 + arg2 + arg3 + ...
我该怎么做?
最好的祝福
只需使用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:
我查看了您的其他 问题,看来您的问题是用作使用自定义类时sum
的key
参数。max
我回答了您的问题,并在我的回答中提供了一种使用您的课程的方法sum
。
这个怎么样:
def my_func(*args):
my_sum = 0
for i in args:
my_sum += i
return my_sum
如果您不想使用+=
运算符,那么
my_sum = my_sum + i
如果您绝对不会使用sum
,那么类似:
def func(*args, default=None):
from operator import add
try:
return reduce(add, args)
except TypeError as e:
return default
或functools.reduce
在 Py3 中