반응형
파이썬에서 **kwargs
는 키워드 인수들을 함수에 전달할 때 사용됩니다. **kwargs
는 키워드 인수들을 받아들이며, 함수 내에서는 딕셔너리 형태로 처리됩니다. 이를 통해 함수가 호출될 때, 임의의 수의 키워드 인수를 받을 수 있습니다. **kwargs
의 사용법과 다양한 예제를 소개하겠습니다.
1. **kwargs
의 기본 사용법
기본 사용법
**kwargs
를 사용하여 함수에 키워드 인수들을 전달합니다. 함수 내에서는 kwargs
가 딕셔너리로 전달된 인수들을 포함하게 됩니다.
def example_function(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
# 함수 호출
example_function(name="John", age=30, city="New York")
# 출력:
# name: John
# age: 30
# city: New York
2. 예제 1: 기본 사용 예제
**kwargs
를 사용하여 함수에 여러 키워드 인수를 전달하고 출력하는 예제입니다.
def print_details(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_details(name="Alice", age=25, job="Engineer")
# 출력:
# name: Alice
# age: 25
# job: Engineer
3. 예제 2: 기본값 제공
기본값을 제공하고, 제공되지 않은 경우 기본값을 사용하는 예제입니다.
def print_info(name, age=18, **kwargs):
print(f"Name: {name}")
print(f"Age: {age}")
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Bob", city="Los Angeles", job="Designer")
# 출력:
# Name: Bob
# Age: 18
# city: Los Angeles
# job: Designer
4. 예제 3: 딕셔너리를 사용하여 인수 전달
이미 존재하는 딕셔너리를 사용하여 **kwargs
로 인수를 전달할 수 있습니다.
def display_person_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
person_info = {
"name": "Carol",
"age": 22,
"city": "Chicago"
}
display_person_info(**person_info)
# 출력:
# name: Carol
# age: 22
# city: Chicago
5. 혼합된 인수 사용
함수에서 **kwargs
를 다른 인수와 혼합하여 사용할 수 있습니다. 이 경우, **kwargs
는 마지막에 와야 합니다.
def mixed_args(arg1, arg2, **kwargs):
print("arg1:", arg1)
print("arg2:", arg2)
for key, value in kwargs.items():
print(f"{key}: {value}")
mixed_args(1, 2, a=3, b=4, c=5)
# 출력:
# arg1: 1
# arg2: 2
# a: 3
# b: 4
# c: 5
6. *args
와 **kwargs
함께 사용
*args
와 **kwargs
를 함께 사용하여 위치 인수와 키워드 인수를 모두 받을 수 있습니다.
def combined_args_kwargs(*args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
combined_args_kwargs(1, 2, 3, x=10, y=20)
# 출력:
# args: (1, 2, 3)
# kwargs: {'x': 10, 'y': 20}
7. 함수 호출 시 **
사용
함수 호출 시에도 **
를 사용하여 딕셔너리를 인수로 분해할 수 있습니다.
def example_function(a, b, c):
print(a, b, c)
kwargs = {'a': 1, 'b': 2, 'c': 3}
example_function(**kwargs) # 출력: 1 2 3
8. 예제 코드 요약
아래는 다양한 방식으로 **kwargs
를 사용하는 예제입니다.
# 기본 사용 예제
def print_all(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_all(name="Alice", age=30)
# 출력:
# name: Alice
# age: 30
# 기본값 제공 예제
def print_info(name, age=18, **kwargs):
print(f"Name: {name}")
print(f"Age: {age}")
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Bob", city="New York")
# 출력:
# Name: Bob
# Age: 18
# city: New York
# 딕셔너리로 인수 전달 예제
def show_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
info = {"name": "Charlie", "age": 35, "city": "Boston"}
show_info(**info)
# 출력:
# name: Charlie
# age: 35
# city: Boston
# 혼합된 인수 사용 예제
def mixed_args(arg1, arg2, **kwargs):
print("arg1:", arg1)
print("arg2:", arg2)
for key, value in kwargs.items():
print(f"{key}: {value}")
mixed_args(1, 2, a=3, b=4)
# 출력:
# arg1: 1
# arg2: 2
# a: 3
# b: 4
# *args와 **kwargs 함께 사용 예제
def combined_args_kwargs(*args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
combined_args_kwargs(1, 2, 3, x=10, y=20)
# 출력:
# args: (1, 2, 3)
# kwargs: {'x': 10, 'y': 20}
# 함수 호출 시 ** 사용 예제
def function(a, b, c):
print(a, b, c)
kwargs = {'a': 1, 'b': 2, 'c': 3}
function(**kwargs) # 출력: 1 2 3
이 예제들을 통해 **kwargs
의 사용 방법과 유용성을 이해할 수 있습니다. **kwargs
는 다양한 수의 키워드 인수를 유연하게 처리할 수 있게 해주는 강력한 기능입니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] Decorator와 Fuction Profiler 사용하기 (0) | 2024.07.07 |
---|---|
[ Python ] Decorator와 Profiler 사용하기 (0) | 2024.07.07 |
[ Python ] 가변 인수 리스트 'args' 사용하기 (0) | 2024.07.07 |
[ Python ] 함수를 객체로 다루어 디버깅에 사용하기 (profiling) (0) | 2024.07.07 |
[ Python ] 파이썬 기본 패키지를 알아보자. (0) | 2024.07.07 |