python에서 리스트를 parameter로 넘길때

qiiiiiiiip의 이미지


var 는 object의 리스트입니다.

그런데 어떤 함수 foobar로 var를 넘기는데,

foobar( var[0], var[1], var[2] ) 는 정상동작하는데,

foobar( var[:] )는 에러를 냅니다..

이걸 가변길이의 var에 대해서 제대로 동작하게 하려면 어떻게 넘겨야하는지요?

heodh의 이미지

http://docs.python.org/tutorial/controlflow.html#arbitrary-argument-lists

질문하신 내용에 맞는 답인지는 잘 모르겠지만, 파라미터의 수가 가변적이더라도 넘길 수 있습니다.

qiiiiiiiip의 이미지

감사합니다. 정확히 제가 원하던 내용이었습니다..
foobar( *var )

랜덤여신의 이미지

var[:]은 var을 시작 위치와 끝 위치 지정 없이 조각(slice)내겠다는 뜻으로, 결국 var와 값이 똑같은 복사본을 얻게 됩니다. 따라서 첫 번째 경우는 인자 3개를 넘기는 것이지만 두 번째 경우는 리스트 인자 하나를 넘기는 것입니다.