0

Python2.5で何かを達成しようとしています

だから私は私の機能を持っています

def f(a,b,c,d,e):
    pass

そして今、私はその関数を呼び出したいと思います:(python2.7ではそうします)

my_tuple = (1,2,3)
f(0, *my_tuple, e=4)

しかし、python2.5 でそれを行う方法はありません。apply() について考えています

apply(f, something magical here)

#this doesn't work - multiple value for 'a'. But it's the only thing I came up with
apply(f, my_tuple, {"a":0, "e":4})

どのようにしますか?前にリストに入れずに、インラインで実行したいと思います。

4

1 に答える 1

1

引数の順序を入れ替えたい場合は、次のようなものを使用できます。

>>> def f(a,b,c,d,e):
...  print a,b,c,d,e
...
>>> my_tuple = (1,2,3)
>>> def apply(f, mid, *args, **kwargs):
...  return f(*args+mid, **kwargs)
...
>>> apply(f, my_tuple, 0, e=4)
0 1 2 3 4
>>>
>>> apply(f, ('a', 'b'), '_', d='c', e='d')
_ a b c d
>>>
于 2012-10-02T11:45:26.340 に答える