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

    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)
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.