2013-04-19 5 views
2

단일 데이터 구조를 사용하여 여러 인수를 갖는 함수로 전달할 수 있습니까? 다음과 같은 것을하고 싶지만 작동하지 않는 것 같습니다.데이터 구조를 사용하여 여러 인수 전달

a(foo_bar) 

대신 :

a(foo_bar[0], foo_bar[1]) 

이 일의 파이썬 방법은 무엇입니까

foo_bar = (123, 546) 

def a(foo, bar): 
    print(foo) 
    print(bar) 

는 다음과 같은 일을 할 수 있습니까?

a(*foo_bar) 

자세한 사용 설명서에 Unpacking Argument Lists보기 ...하지만 정말이보다 훨씬 더 그것에가되지 않습니다 :

답변

16

은 당신이 원하는 것은입니다.

완성도를 들어, 참조 문서는 Calls에 있습니다 구문 *expression 함수 호출에 나타납니다

경우, expression는 반복자로 평가해야합니다. 이 반복 가능 요소는 추가 위치 인수 인 것처럼 처리됩니다. 위치 인수 x1, ..., xN이 있고 expression이 y1, ..., yM 시퀀스로 평가되면 M + N 위치 인수 x1, ..., xN, y1, ...가있는 호출과 같습니다. .., yM.

+1

참조 http://stackoverflow.com/questions/817087/call-a-function-with-argument-list-in-python –