더북(TheBook)

조금 더 유용한 함수를 하나 생각해 보자. 원하는 개수의 숫자를 인수 리스트로 입력하여 입력한 모든 숫자의 평균값을 구하는 것이다. 이런 함수를 구현하는 쉬운 방법을 다음 예시에서 살펴보자.

def avg(*args):
    return sum(args)/len(args)

이제 이 함수는 호출할 때마다 다른 개수의 인수를 입력하여 호출할 수 있다.

>>> avg(11, 22, 33)
22.0
>>> avg(1, 2)
1.5

이런 함수의 장점은 함수를 호출할 때 인수에 대괄호 기호를 사용할 필요가 없다는 것이다. 인수들은 리스트의 항목으로 인식되지만, 인수에 집어넣을 때 리스트 문법을 사용할 필요가 없다.

이번에는 앞 문법에서 살펴본 ‘일반_인수’에 대해 이야기해 보자. *args에 포함되지 않는 추가 인수는 반드시 *args 앞에 위치하거나 키워드 인수이어야 한다.

앞서 살펴본 avg 예시를 다시 살펴보자. 평균 산출 시 사용할 단위(units)를 별도의 인수로 추가한다고 가정해 보자. 단위를 나타내는 인수 units는 키워드 인수가 아니기 때문에 반드시 *args보다 앞에 위치해야 한다.

def avg(units, *args):
    print(sum(args)/len(args), units)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.