Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 가변 길이 인수(*args) 완벽 가이드

함수를 정의할 때 지정한 것보다 더 많은 인수를 전달해야 하는 경우가 종종 있습니다. 이처럼 개수가 정해지지 않은 인수를 가변 길이 인수(variable-length arguments)라고 하며, 필수 인수나 기본값 인수와 달리 함수 정의 시 별도의 이름을 붙이지 않습니다.

문법

키워드가 아닌(non-keyword) 가변 인수를 받는 함수의 기본 문법은 다음과 같습니다.

def functionname([formal_args] *var_args_tuple):
    "function_docstring"
    function_suite
    return [expression]

별표(*)는 키워드가 아닌 모든 가변 인수의 값을 담는 변수 이름 앞에 위치합니다. 이 변수는 튜플(tuple) 형태로 값을 저장하며, 함수 호출 시 추가 인수가 전달되지 않으면 빈 튜플로 남게 됩니다.

예제

다음은 가변 길이 인수를 활용하는 간단한 예제입니다.

#!/usr/bin/python3
# 함수 정의
def printinfo(arg1, *vartuple):
    "전달된 가변 인수를 출력하는 함수"
    print("Output is:")
    print(arg1)
    for var in vartuple:
        print(var)
    return

# printinfo 함수 호출
printinfo(10)
printinfo(70, 60, 50)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Output is:
10
Output is:
70
60
50

첫 번째 호출에서는 필수 인수인 arg1에 10만 전달되었고, 두 번째 호출에서는 나머지 값들(60, 50)이 튜플 vartuple에 자동으로 저장되어 반복문으로 출력된 것을 확인할 수 있습니다.

참고: 키워드 가변 인수(**kwargs)

키워드 형태의 가변 인수를 처리하려면 별표 두 개(**kwargs)를 사용합니다. 이 경우 인수들은 튜플이 아닌 딕셔너리(dictionary) 형태로 전달되며, func(name="Kim", age=30)처럼 이름 붙은 인수를 임의의 개수만큼 받을 수 있습니다.