Python 입문 | 함수(function) | 가변 인자

인수에 대해 또 다른 설명을 하고 싶은 것이 “가변 인자"라는 것이다. 가변 인자라는 것은 “길이 (인수의 수)가 가변 인수"이다. 즉, “몇 개의 인수를 붙여도 된다"라는 특별한 인수이다.     “인수가 몇개 있어도 된다? 그것을 어떻게 정의하는 걸까?“라고 이상하게 생각 하겠지만, 가능하다. “정의 할 수 있지만 어떻게 값을 받을 거야?“라고 생각 하겠지만, 받을 수 있다.

가변 인자라는 것은 알기 쉽게 말하자면, “많은 인수를 컨테이너에 모와서 받을 인수"이다. 즉, “목록을 인수로 설정한 것"이라고 말할 수 있다. 다만, 목록을 인수에 쓰는 번거로움 때문에, (목록에 보관해 두는 값을) 하나씩 인수에 넣으면 자동으로 그것들을 한꺼번에 넘겨주게 되어 있다.

이 가변 인자는 다음과 같이 정의한다.     함수의 정의 (4)

def 함수(*인수):

인수 정의하는 변수 이름 앞에 별표 (*)를 붙이면, 그 인수가 가변 인자로 설정된다. 이 인수에는 여러 인수로 정의한 값이 n개로 모와서 전달된다. 그 후로는 거기로 부터 필요한 값을 꺼내는 처리만 하면 된다.

그럼 이것도 간단한 예제를 살펴 보자.

def calc(*num): 
    total = 0
    for n in num: 
        total += int(n) 
    print('합계:' + str(total)) 
    print('평균:' + str(total // len(num))) 
   
calc(123, 456, 789, 246, 357, 910) 

여기에서는 calc(* num)와 같이 함수를 정의하고 있다. 이것으로 num이라는 변수에 입력된 모든 인수를 컨테이너에 모와서 전달된다. 그 후에는 이 num을 for문으로 반복해 나가면 된다.