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

Python 함수에서 가변 길이 인수(*args)를 사용하는 방법

Python에서는 *args 형태의 매개변수를 사용하여 키워드가 없는(non-keyworded) 가변 길이 인수 목록을 함수에 전달할 수 있습니다. 여기서 핵심은 별표(*) 기호입니다. 별표와 함께 'args'라는 단어를 붙이면, 해당 매개변수가 개수에 상관없이 여러 개의 위치 인수를 받을 수 있음을 의미합니다.

즉, 함수를 호출할 때 인수를 몇 개든 자유롭게 넘길 수 있으며, 함수 내부에서는 이 값들이 하나의 튜플(tuple)로 묶여 전달됩니다.

예제 코드

def multiply(*args):
    y = 1
    for num in args:
        y *= num
    print(y)

multiply(3, 7)
multiply(9, 8)
multiply(3, 4, 7)
multiply(5, 6, 10, 8)

실행 결과

21
72
84
2400

코드 설명

위 예제의 multiply() 함수는 *args를 통해 전달된 모든 숫자를 곱하는 기능을 수행합니다.

  • multiply(3, 7) → args는 (3, 7)이라는 튜플이 되어 3 × 7 = 21
  • multiply(9, 8) → args는 (9, 8)이 되어 9 × 8 = 72
  • multiply(3, 4, 7) → args는 (3, 4, 7)이 되어 3 × 4 × 7 = 84
  • multiply(5, 6, 10, 8) → args는 (5, 6, 10, 8)이 되어 5 × 6 × 10 × 8 = 2400

이처럼 *args를 사용하면 호출 시점에 인수의 개수를 정하지 않아도 되므로, 유연하고 재사용성 높은 함수를 작성할 수 있습니다. 참고로 키워드 인수(key=value 형태)를 가변적으로 받고 싶다면 **kwargs를 사용하면 됩니다.