2012-10-02 5 views
0

내가 Python2.5파이썬 2.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(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}) 

어떻게 하시겠습니까? 전에 목록에 물건을 넣지 않고 인라인으로하고 싶습니다.

답변

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