Python에서 함수를 정의할 때 인자 목록 언패킹(unpacking)은 함수에 전달되는 인자들 중에서 리스트, 튜플, 딕셔너리 등과 같은 iterable 객체를 개별적인 인자로 분리하여 전달하는 것을 말합니다.
인자 언패킹은 * 또는 **를 사용하여 구현됩니다. *은 리스트나 튜플 등의 iterable 객체를 인자 목록 언패킹하여 개별적인 인자로 분리합니다. **는 딕셔너리 객체를 인자 목록 언패킹하여 개별적인 키-값 쌍으로 분리합니다.
1. 언패킹을 사용한 함수 정의의 예시
def my_function(*args, **kwargs):
print("Positional arguments:")
for arg in args:
print(arg)
print("\nKeyword arguments:")
for key, value in kwargs.items():
print(f"{key}: {value}")
위 함수에서 *args는 개별 인자로 분리되는 위치 인자를 받습니다. **kwargs는 개별 인자로 분리되는 키-값 쌍으로 구성된 딕셔너리를 받습니다.
2. 언패킹을 사용하여 함수 호출
my_list = [1, 2, 3]
my_dict = {"a": 4, "b": 5, "c": 6}
my_function(*my_list, **my_dict)
위 예시에서 *my_list는 리스트를 인자 목록 언패킹하여 1, 2, 3의 위치 인자로 분리하고, **my_dict는 딕셔너리를 인자 목록 언패킹하여 키-값 쌍으로 분리합니다. 그 결과, my_function 함수는 아래와 같이 호출됩니다.
Positional arguments:
1
2
3
Keyword arguments:
a: 4
b: 5
c: 6
따라서, 인자 목록 언패킹을 사용하면 함수에 iterable 객체를 전달하고자 할 때 매우 편리하게 사용할 수 있습니다.
'개념' 카테고리의 다른 글
[파이썬] namedtuple 이란 (0) | 2023.03.11 |
---|---|
[파이썬] 불변객체와 가변객체 (0) | 2023.03.11 |
파이썬(Python)의 임의의 인자목록(variadic arguments) 에 대해서 (0) | 2023.03.05 |
파이썬(Python)의 키워드 인자(keyword arguments) 에 대해서 (0) | 2023.03.04 |
파이썬(Python)의 기본 인자(default parameter) 설정 하는 방법 (0) | 2023.03.03 |