더북(TheBook)

12.4 가변 길이 인수 튜플

함수는 인수를 임의의 개수로 받을 수 있다. *로 시작하는 인자 이름은 인수들을 튜플로 수집(gather)한다. 예를 들어 printall은 원하는 만큼 인수를 받아서 모두 출력할 수 있다.

def printall(*args):

print(args)

수집 인자(gather parameter)의 이름은 마음대로 정할 수 있지만, args라고 사용하는 관례가 있다. printall 함수가 어떻게 동작하는지 보자.

>>> printall(1, 2.0, '3')

(1, 2.0, '3')

수집의 반대는 확산(scatter)이다. 값으로 된 시퀀스가 있고, 이 시퀀스를 함수에 다중 인수로 전달하고 싶다면 * 연산자를 사용해야 한다. 예를 들어 divmod는 정확하게 인수 두 개를 받지만, 튜플과는 사용할 수 없다.

>>> t = (7, 3)

>>> divmod(t)

TypeError: divmod expected 2 arguments, got 1

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