Back to writing

가변인자 (Arbitrary Argument Lists)

가변인자 (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 함수는 두 개의 위치 인자와 두 개의 키워드 인자를 받아 각각 출력합니다.