본문 바로가기

개발/Python

[Python] *args 이해하기

반응형

*args는 파이썬에서 가변 인자(variable-length argument)를 받을 때 사용하는 구문입니다. 함수에 전달된 인자의 개수가 미리 정해지지 않았거나, 동적으로 변화할 때 유용하게 사용할 수 있습니다. 이 글에서는 *args의 사용법과 다양한 예시를 통해 그 의미와 활용 방법을 설명하겠습니다.

1. *args의 기본 개념

*args는 함수 정의에서 튜플(tuple) 형태로 인자를 받습니다. 즉, 함수 호출 시 여러 개의 위치 인자를 args라는 튜플로 묶어서 함수 내부로 전달합니다. 이 튜플을 통해 여러 인자를 순차적으로 처리할 수 있습니다.

예시: 기본적인 사용

def example_function(*args):
    for arg in args:
        print(arg)

# 함수 호출 시 여러 인자 전달
example_function(1, 2, 3)

위 코드에서는 example_function 함수가 *args로 여러 인자를 받아서 처리하는 예시입니다. 출력 결과는 다음과 같습니다:

1
2
3

2. *args와 위치 인자

*args위치 인자(positional arguments)를 받습니다. 함수 호출 시 인자들이 순서대로 처리되기 때문에, 인자의 개수나 값이 동적으로 변할 때 유용합니다.

예시: 위치 인자와 *args

def example_function(a, b, *args):
    print(a, b)
    print(args)

# 함수 호출
example_function(1, 2, 3, 4, 5)

위 코드에서는 ab는 명시적인 인자로 받고, 나머지 값들은 *args로 처리합니다. 출력 결과는 다음과 같습니다:

1 2
(3, 4, 5)

3. *args와 기본값 인자

*args는 기본값을 갖는 인자와 함께 사용할 수 있습니다. 그러나 *args는 항상 인자 목록의 끝에 위치해야 합니다. 즉, 기본값을 가진 인자들은 *args보다 먼저 정의되어야 합니다.

예시: 기본값 인자와 *args

def example_function(a, b=2, *args, c=5):
    print(a, b, c)
    print(args)

# 함수 호출
example_function(1, 3, 4, 5, 6)

이 코드에서는 기본값을 가진 인자 bc를 사용하며, *args는 나머지 인자들을 튜플로 받아 처리합니다. 출력 결과는 다음과 같습니다:

1 3 5
(4, 5, 6)

4. *args**kwargs 비교

<p*args위치 인자만 받는 반면, **kwargs키워드 인자(key-value pairs)를 받습니다. 이 두 가지는 함께 사용할 수 있으며, 각각의 목적에 맞게 유연하게 인자를 처리할 수 있습니다.

예시: *args**kwargs 함께 사용하기

def example_function(a, b, *args, **kwargs):
    print(a, b)
    print(args)
    print(kwargs)

# 함수 호출
example_function(1, 2, 3, 4, 5, x=10, y=20)

위 코드는 *args**kwargs를 동시에 사용하는 예시입니다. *args는 위치 인자를, **kwargs는 키워드 인자를 받습니다. 출력 결과는 다음과 같습니다:

1 2
(3, 4, 5)
{'x': 10, 'y': 20}

5. *args 사용 시 주의점

*args위치 인자만 받으므로, 순서대로 인자를 받는다는 점을 기억해야 합니다. 또한 *args꼭 마지막에 위치해야 하며, 그 뒤에 **kwargs를 사용하는 것이 일반적입니다.

결론

*args가변 개수의 위치 인자를 받아서 처리할 수 있게 해주는 파이썬의 기능입니다. 이를 통해 여러 개의 인자를 유연하게 처리할 수 있으며, 기본값을 가진 인자나 키워드 인자와도 함께 사용할 수 있습니다. *args를 적절히 활용하면 더욱 동적이고 유연한 함수 정의가 가능합니다.

반응형

자바스크립트를 허용해주세요.
[ 자바스크립트 활성화 방법 ]
from Mohon Aktifkan Javascript!