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
>>>

編集:

なぜ合計を避けたいのかわかりませんが、ここに行きます:

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

の代わりにoperator.addlambdaを使用することもできます。


編集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.reducePy3で

于 2012-07-17T10:56:59.590 に答える