더북(TheBook)

이 함수를 사용한 예시를 살펴보자.

>>> avg('inches', 11, 22, 33)
22.0 inches

일반 인수 units가 인수 리스트 *args보다 앞에 위치했기 때문에 이 함수는 유효하다.

Note ≡


별표 기호(*)는 파이썬에서 여러 가지 용도로 사용된다. 이런 맥락에서 별표 기호는 스플래트(splat) 혹은 위치 확장 연산자라고 불린다. 기본적인 사용법은 ‘언팩된 리스트(unpacked list)’다. 조금 더 구체적으로 말하자면, 별표 기호는 리스트를 분리된 항목의 간단한 나열로 교체한다.

*args와 같은 존재는 할 수 있는 일이 그리 많지 않다. 여러분이 할 수 있는 한 가지 일(4.9절에서 중요하게 다룸)은 *args를 함수에 전달하는 것이다. 예를 들면 다음과 같다.

>>> ls = [1, 2, 3]     # 언팩된 리스트
>>> print(*ls)         # 언팩 버전 출력하기
1 2 3
>>> print(ls)          # 패킹된 버전 출력하기(일반 리스트)
[1, 2, 3]

*args 혹은 *ls로 할 수 있는 또 다른 한 가지는 별표 기호를 제거하여 표준 파이썬 리스트로 패킹하는 것(혹은 재패킹하는 것)이다. 그러면 파이썬의 모든 표준 리스트-제어 기능으로 데이터를 조작할 수 있게 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.