Page 23 -
P. 23
1.3.1 풀어보기
이번 예제의 mysum 함수는 전개 연산자를 활용하는 간단한 예제입니다. 전개
연산자(splat operator)는 함수의 매개변수를 원하는 만큼 받아서 활용할 수 있게
해주는 연산자입니다. 매개변수를 *numbers로 입력하면 함수 내부에서 numbers
를 활용해서 모든 매개변수가 들어 있는 튜플을 사용할 수 있습니다.
참고로 매개변수를 전혀 입력하지 않는 경우에도 numbers는 튜플입니다. 내용
이 비어 있는 튜플일 뿐입니다.
전개 연산자는 가변 매개변수 함수를 만들 때 활용합니다. 파이썬은 매개변수
의 자료형을 강제하지 않으므로, 여러 종류의 매개변수를 전달할 수 있습니다.
하지만 일반적으로 이러한 가변 매개변수 함수는 매개변수로 같은 자료형의 매
개변수가 여러 개 전달될 것이라 가정합니다. 필자의 경험으로 보았을 때, 대부
분 튜플(numbers)을 기반으로 반복문을 활용하거나 리스트 내포를 활용해서 코
드를 작성했을 것입니다.
Note 일반적으로 전개 연산자를 활용해서 함수를 만들 때는 숫자를 직접 지정해서 특정
위치의 요소를 추출하지 않습니다. 특정 위치의 요소를 개별적으로 사용해야 하는 경우에는
키워드 매개변수를 사용하는 것이 좋습니다.
모든 매개변수가 숫자로 들어온다면 간단하게 output이라는 이름의 지역 변수
를 0으로 초기화해서 만들고, 반복문을 돌려서 각각의 숫자를 더해주면 될 것
입니다.
물론 이렇게 만든 mysum 함수를 사용하지는 않겠지만, *args 등 전개 연산자
를 활용해서 만드는 가변 매개변수 함수는 많이 사용하므로 기억해두기 바랍
니다.
1장 numeric 자료형 039
파이썬_06.indd 39 2021-11-18 오전 9:38:17