unpacking
은 여러 개의 객체를 포함하고 있는 하나의 객체를 풀어주는 연산이다.
함수의 인자 앞에 asterisk(*)
를 붙여주게 되면 함수는 객체 내의 인자를 각각 받게 된다.
def my_sum(a, b, c):
return a + b + c
arr = [1, 2, 3]
print(*arr)
# 1 2 3
print(my_sum(arr))
# error
print(my_sum(*arr)
# 6
다만 인자 내의 객체수가 함수의 매개변수 수와 다르다면 오류가 난다.
print(my_sum([1, 2, 3, 4])
# TypeError
list
말고도 tuple
, set
, dict
도 가능하다. 단, set
과 dict
는 순서를 보장하지 못한다.
**
를 사용하면, dict
의 key-value 값도 unpacking할 수 있다.
def print_name(name, age):
print(f'이름은 {name}, 나이는 {age}입니다.')
profile = {'name': '철수', 'age': 7}
print_name(**profile)