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

Python에서 키워드 매개변수(**kwargs)를 함수에 전달하는 방법

Python에서 **kwargs(더블 애스터리스크 형태)는 키워드가 지정된 가변 길이 인자들을 딕셔너리(dictionary) 형태로 함수에 전달할 때 사용됩니다. 두 개의 별표(**)와 함께 사용되는 'kwargs'라는 단어는 함수가 임의 개수의 키워드 인자를 받을 수 있음을 나타냅니다.

*args와 마찬가지로 **kwargs도 원하는 만큼 많은 인자를 전달할 수 있습니다. 다만 **kwargs는 *args와 달리 각 인자에 반드시 키워드(이름)를 지정해야 한다는 점이 다릅니다. 전달된 키워드와 값은 함수 내부에서 딕셔너리 형태로 저장되므로, 키를 통해 값에 접근하거나 순회할 수 있습니다.

예제 코드

def print_kwargs(**kwargs):
    print(kwargs)

print_kwargs(kwargs_1="Whale", kwargs_2=5, kwargs_3=False, kwargs_4=2.1)

실행 결과

{'kwargs_4': 2.1, 'kwargs_1': 'Whale', 'kwargs_2': 5, 'kwargs_3': False}

위 예제에서 네 개의 키워드 인자가 하나의 딕셔너리로 묶여 print_kwargs 함수에 전달되었으며, 함수 내부에서는 이를 그대로 출력합니다. 참고로 딕셔너리는 순서가 보장되지 않으므로(구버전 Python 기준) 출력 시 키-값 쌍의 순서는 입력 순서와 다르게 나타날 수 있습니다.

**kwargs 활용 팁

함수 정의 시 매개변수 순서는 일반적으로 일반 매개변수 → *args → **kwargs 순으로 작성하는 것이 관례입니다. 또한 kwargs는 딕셔너리이기 때문에 kwargs['키'] 방식으로 특정 값에 접근하거나, .get() 메서드를 사용해 키가 없을 때 기본값을 처리할 수도 있습니다.