SeouliteLab

[Python/파이썬] *args와 **kwargs의 차이점 본문

프로그래밍

[Python/파이썬] *args와 **kwargs의 차이점

Seoulite Lab 2024. 3. 5. 08:14

'*args'와 '**kwargs'는 함수를 정의할 때 사용되는 매개변수입니다. 이 두 매개변수의 차이점을 알아보겠습니다.

'*args'

'*args'는 함수를 호출할 때 임의의 개수의 위치 인자를 받을 수 있도록 해줍니다. '*' 기호와 함께 변수 이름을 작성하여 여러 개의 위치 인자를 하나의 튜플로 묶어 함수 내부로 전달할 수 있습니다.

'**kwargs'

'**kwargs'는 함수를 호출할 때 임의의 개수의 키워드 인자를 받을 수 있도록 해줍니다. '**' 기호와 함께 변수 이름을 작성하여 여러 개의 키워드 인자를 하나의 딕셔너리로 묶어 함수 내부로 전달할 수 있습니다.

'*args'와 '**kwargs'를 함께 사용하면 임의의 개수의 위치 인자와 키워드 인자를 동시에 처리할 수 있습니다.

예제

예제 1: '*args'를 사용하여 임의의 개수의 위치 인자 처리

def sum_values(*args):
    total = 0
    for num in args:
        total += num
    return total

result = sum_values(1, 2, 3, 4, 5)
print("Sum of values:", result)

예제 2: '**kwargs'를 사용하여 임의의 개수의 키워드 인자 처리

def print_values(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_values(name="John", age=30, city="New York")

예제 3: '*args'와 '**kwargs'를 함께 사용하여 임의의 개수의 위치 및 키워드 인자 처리

def process_data(*args, **kwargs):
    print("Positional arguments:")
    for arg in args:
        print(arg)
    print("Keyword arguments:")
    for key, value in kwargs.items():
        print(f"{key}: {value}")

process_data(1, 2, 3, name="John", age=30)