args 와 *kwargs
Python에서 *args
와 **kwargs
는 함수 정의 시 유용하게 사용되는 매개변수
*args : (positional) arguments
*args
는 함수에 가변 인자를 전달할 때 사용*
이 중요, 뒤에 오는 args는 다른 이름이어도 상관 없다- 함수에 명시적으로 정의되지 않은 임의의 개수의 인자를 받을 수 있다
*args
는 튜플 형태로 전달된다- 함수 호출 시에 인자 리스트 뒤에
*args
를 사용하여 값을 전달한다
def add(*args):
total = 0
for num in args:
total += num
return total
print(add(1, 2, 3)) # 출력: 6
print(add(1, 2, 3, 4, 5)) # 출력: 15
**kwargs : keyword arguments
**kwargs
는 함수에 복수의 키워드 인자를 전달할 때 사용된다.- 함수에 명시적으로 정의되지 않은 키워드 인자를 받을 수 있다.
**kwargs
는 딕셔너리 형태로 전달된다- 함수 호출 시에 인자 리스트 뒤에
**kwargs
를 사용하여 값을 전달한다
def print_details(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_details(name="Alice", age=30, city="New York")
# 출력:
# name: Alice
# age: 30
# city: New York
args와 *kwargs 를 함께 사용
*args
와 **kwargs
를 함께 사용하여 가변 개수의 위치 인자와 키워드 인자를 모두 처리할 수도 있다
def func_with_args_and_kwargs(*args, **kwargs):
print("Positional arguments:")
for arg in args:
print(arg)
print("Keyword arguments:")
for key, value in kwargs.items():
print(f"{key}: {value}")
func_with_args_and_kwargs(1, 2, 3, name="Alice", age=30)
# 출력:
# Positional arguments:
# 1
# 2
# 3
# Keyword arguments:
# name: Alice
# age: 30