본문 바로가기

개념

파이썬(Python)의 임의의 인자목록(variadic arguments) 에 대해서

파이썬에서 함수를 정의할 때, 임의의 인자 목록(variadic arguments)을 사용할 수 있습니다. 이는 함수에 전달되는 인자의 개수가 가변적인 경우 유용합니다.

1. 개념 설명


Python에서는 *args와 **kwargs라는 두 가지 형태의 임의의 인자 목록을 사용할 수 있습니다.

*args는 임의의 개수의 위치 인자를 받을 때 사용됩니다. 함수에 전달되는 위치 인자는 튜플(tuple) 형태로 args에 저장됩니다.

**kwargs는 임의의 개수의 키워드 인자를 받을 때 사용됩니다. 함수에 전달되는 키워드 인자는 딕셔너리(dictionary) 형태로 kwargs에 저장됩니다.

2. 예제 코드

def my_func(*args, **kwargs):
    print("Positional arguments:")
    for arg in args:
        print(arg)
    
    print("\nKeyword arguments:")
    for key, value in kwargs.items():
        print(f"{key}: {value}")

# 위치 인자와 키워드 인자를 함께 사용하는 경우
my_func(1, "apple", name="John", age=30)

# 결과
# Positional arguments:
# 1
# apple

# Keyword arguments:
# name: John
# age: 30

# 위치 인자만 사용하는 경우
my_func("banana", "orange", "kiwi")

# 결과
# Positional arguments:
# banana
# orange
# kiwi

# 키워드 인자만 사용하는 경우
my_func(color="red", size="medium")

# 결과
# Positional arguments:

# Keyword arguments:
# color: red
# size: medium


위의 코드에서 my_func 함수는 *args와 **kwargs를 인자로 받습니다. 함수 내부에서는 args에는 위치 인자들이, kwargs에는 키워드 인자들이 저장됩니다.

my_func 함수를 호출할 때, 위치 인자와 키워드 인자를 함께 사용하거나, 위치 인자만 사용하거나, 키워드 인자만 사용하는 경우를 보여줍니다.

위치 인자의 경우 args에 저장되며, 키워드 인자의 경우 kwargs에 저장됩니다. 함수 내부에서는 각각의 인자를 반복문으로 순회하며 출력합니다.