🖥️ IT, 컴퓨터/🐍 Python

[Python] 파이썬 *args와 **kwargs

김 홍시 2024. 1. 17.
반응형

파이썬에서 *args**kwargs는 함수에서 가변 개수의 인자를 다룰 때 사용됩니다. 각각은 다음과 같은 목적으로 사용됩니다:

*args

  • *args는 "arguments"의 약어로, 함수에 가변 개수의 위치 인자를 전달하는 데 사용됩니다.
  • *args는 튜플로 처리되며, 함수 내에서 이 튜플을 통해 전달된 모든 위치 인자에 접근할 수 있습니다.
  • 이 기능은 함수에 몇 개의 인자가 전달될지 미리 알 수 없을 때 유용합니다.
def sum_numbers(*args):
    return sum(args)

print(sum_numbers(1, 2, 3))  # 결과: 6

**kwargs

  • **kwargs는 "keyword arguments"의 약어로, 함수에 가변 개수의 키워드 인자를 전달하는 데 사용됩니다.
  • **kwargs는 딕셔너리로 처리되며, 함수 내에서 이 딕셔너리를 통해 전달된 모든 키워드 인자에 접근할 수 있습니다.
  • 이 기능은 인자의 이름과 함께 값을 전달하고 싶을 때, 특히 함수의 인자가 동적으로 변할 때 유용합니다.
def greet(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

greet(name="Alice", age=25)  # 출력: name: Alice, age: 25

결합 사용

*args**kwargs는 함께 사용될 수 있으며, 이 경우 *args가 위치 인자를, **kwargs가 키워드 인자를 처리합니다. 이들은 반드시 이 순서대로 사용되어야 합니다.

def func(*args, **kwargs):
    print("args:", args)
    print("kwargs:", kwargs)

func(1, 2, name="Alice", age=25)
# 출력: args: (1, 2)
#       kwargs: {'name': 'Alice', 'age': 25}

이러한 기능들은 파이썬 함수가 다양한 상황과 요구 사항에 유연하게 대응할 수 있도록 도와줍니다.

반응형

댓글