1

与えられた:

def psum(a,b,c):
    return a**b+c

そしてx = [1,2]y = 3 どうすればいいですかpsum(*x,3)--> 同等のもの。

x[0], x[1]関数が返さxれ、それを2回呼び出すのは非効率的であるため、やりたくありません。できるだろうかz = function(a)。どこでz = x。そして、 、 を行いz[0]ますz[1]

しかし、そうでなければこれを行うことができ、そのような方法で位置引数を使用できるかどうか疑問に思っています。

また、ラッパーを使用せずに。

編集:関数を実装しておらず、関数の作成者が名前付き引数を使用していないため、名前を使用できません:/

4

2 に答える 2

2

あなたはこれを行うことができます:

psum(*x + [y])
于 2012-10-12T18:22:47.780 に答える
1

この場合、引数の順序は重要ではないため、機能しますpsum(3,*x)

もう少し一般的なケースでは、引数の名前を知っていれば、

psum(*x,c=3)

私にもうまくいくsumようですが、varargsを取るように定義されているとうまくいきません...

渡すオブジェクトを変更せずに、完全に一般的なケースでこれを行う方法はないと思いますpsum

x.append(3)
psum(*x)
于 2012-10-12T18:15:25.800 に答える