Back to writing
가변인자 (Arbitrary Argument Lists)

파이썬에서는 함수에 전달하는 인자의 수가 유동적일 때, *args
와 **kwargs
를 사용하여 처리할 수 있습니다.
*args
: 가변 위치 인자(Non-keyword arguments)를 처리합니다. 함수에 전달된 추가적인 위치 인자들은 튜플 형태로 저장됩니다.**kwargs
: - 가변 키워드 인자(Keyword arguments)를 처리합니다. 함수에 전달된 추가적인 키워드 인자들은 딕셔너리 형태로 kwargs에 저장됩니다.
*args
사용 예시
*args
를 사용하면 함수에 전달되는 위치 인자의 수에 관계없이 이를 처리할 수 있습니다.
def print_args(*args):
for arg in args:
print(arg)
print_args('Python', 'is', 'awesome')
# Result:
# Python
# is
# awesome
위의 예시에서 print_args 함수는 세 개의 문자열 인자를 받아 각각 출력합니다. *args
는 전달된 인자들을 튜플로 묶어 처리합니다.
**kwargs
사용 예시
**kwargs
를 사용하면 함수에 전달되는 키워드 인자의 수에 관계없이 이를 처리할 수 있습니다.
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key} = {value}")
print_kwargs(name='Alice', age=30, city='Seoul')
# Result:
# name = Alice
# age = 30
# city = Seoul
위의 예시에서 print_kwargs 함수는 세 개의 키워드 인자를 받아 각각의 키와 값을 출력합니다. **kwargs
는 전달된 인자들을 딕셔너리로 묶어 처리합니다.
args
와 **kwargs
함께 사용하기
*args
와 **kwargs
를 함께 사용하면 함수에 위치 인자와 키워드 인자를 모두 유동적으로 전달할 수 있습니다.
def print_all(*args, **kwargs):
print("args:", args)
print("kwargs:", kwargs)
print_all('Python', '3.9', version='latest', author='Guido')
# Result:
# args: ('Python', '3.9')
# kwargs: {'version': 'latest', 'author': 'Guido'}
위의 예시에서 print_all 함수는 두 개의 위치 인자와 두 개의 키워드 인자를 받아 각각 출력합니다.