kwargs는 파이썬에서 사용되는 약어로, “keyword arguments“를 의미합니다. 함수에 전달된 키워드 기반 인수(매개변수)를 딕셔너리 형태로 처리할 때 사용됩니다.
🔹 kwargs의 사용법**
kwargs는 여러 개의 키워드 인수를 받을 수 있도록 도와주는 기능입니다. 함수 정의 시 kwargs를 사용하면 호출할 때 키워드 기반의 여러 인수를 전달할 수 있으며, 함수 내부에서는 이를 딕셔너리(dict)로 받아 처리합니다.
✅ 예제 1: kwargs 기본 사용**
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=25, city="Seoul")
🔹 실행 결과:
name: Alice
age: 25
city: Seoul
• **kwargs는 여러 개의 키워드 인수를 받아서 딕셔너리로 저장합니다.
• kwargs.items()를 사용하면 키와 값을 순회하며 출력할 수 있습니다.
✅ 예제 2: *args와 kwargs 함께 사용**
def mix_args(*args, **kwargs):
print("Positional arguments:", args)
print("Keyword arguments:", kwargs)
mix_args(1, 2, 3, name="Alice", age=25)
🔹 실행 결과:
Positional arguments: (1, 2, 3)
Keyword arguments: {'name': 'Alice', 'age': 25}
• *args는 위치 인수를 받고, **kwargs는 키워드 인수를 받습니다.
✅ 예제 3: 함수에 kwargs 전달하기**
**kwargs를 사용하면 다른 함수에 키워드 인수를 전달할 수도 있습니다.
def greeting(name, age):
print(f"Hello, my name is {name} and I am {age} years old.")
info = {"name": "Bob", "age": 30}
greeting(**info)
🔹 실행 결과:
Hello, my name is Bob and I am 30 years old.
• greeting(**info)는 info 딕셔너리를 풀어서 greeting(name="Bob", age=30)처럼 전달합니다.
✅ 예제 4: 기본값과 함께 사용
def user_info(name, age=18, **kwargs):
print(f"Name: {name}, Age: {age}")
for key, value in kwargs.items():
print(f"{key}: {value}")
user_info("Alice", location="New York", job="Engineer")
🔹 실행 결과:
Name: Alice, Age: 18
location: New York
job: Engineer
• **kwargs를 사용하면 미리 정의되지 않은 추가 정보를 유연하게 받을 수 있습니다.
🔹 kwargs를 사용하는 이유?**
유연성: 함수에 전달할 수 있는 인수의 개수를 미리 정할 필요가 없습니다.
가독성 향상: 명시적인 키워드 인수를 사용하여 코드를 더 이해하기 쉽게 만듭니다.
딕셔너리 활용: 기존의 딕셔너리를 그대로 함수에 전달할 수 있어 편리합니다.
💡 **kwargs는 선택적 키워드 인수를 받을 때 유용하며, 이를 활용하면 보다 확장성이 좋은 코드를 작성할 수 있습니다! 🚀