가변 인수를 받는 함수를 만들었다. 그리고는 함수를 호출하면서 인자로(range(10))  이런 식으로 넣었다. 

그런데 에러가 발생하였다. 될 것 같은데... 왜 안되지? 생각하면서 테스트하다가 결국엔 for i in args[0]: 으로 하는 방법을 찾았다. 

그리고는 이제 잠자리에 들기전에 책 한번 보고 자야지 하는 생각으로 책을 펼쳤는데, 많은 데이터를 한번에 전달하는 방법이 있었다. 그것은 바로 *range(10) 으로 전달하는 것이다. 

이렇게 *range(10) 으로 전달하면, 함수 args 변수는 (1,2,3,4,5,6,...) 이렇게 전달받는다. 하지만 그냥  range(10) 을 함수의 args변수에 전달하면 args는 ([1,2,3,4,5,6,...],) 이렇게 전달받는다.

이 차이를 이용한 것이 밑의 소스코드중 첫 번째 코드이고 *를 이용한것은 두 번째 소스코드이다. 당연, 두 번째가 더 수월한 코드이다. *를 몰라서 삽질했네.

그래서 덕분에 많은 공부가 되었다. 좋아~




'Programming > Python' 카테고리의 다른 글

사전 (Dictionary)  (0) 2013.03.06
Python 스크립트를 실행파일(exe) 로 만들기  (0) 2013.02.25
튜플 (Tuple)  (0) 2013.02.21
파일이름과 경로명 분리  (0) 2013.02.18
sort 함수 만들기  (0) 2013.02.14
Posted by scii
: