1. Packing
- packing은 여러개의 객체를 하나의 객체로 합쳐주는 기능이다.
- packing에는 2가지가 존재한다.
a) 위치인자(*) packing
- print('a', 'b', 'c')
- print 함수는 매개변수의 갯수에 대한 제약이 없다. 이것이 가능한 이유가 packing이다.
- 즉, 함수의 인자(=매개변수)의 갯수를 유연하게 지정할 때 사용한다.
- 위치인자(*)를 매개변수 앞에 붙이면 packing을 사용한다.
- 위치인자를 사용하면 다수의 값들을 tuple로 관리한다.
예시 - 위치인자)
def test_packing(*args):
print(type(args))
print(args)
test_packing(1,2,3,4,5)
b) 키워드인자(**) packing
- 키워드 인자는 **을 사용해 표시할 수 있다.
- key와 value로 구성된 다수의 값을 dictionary로 관리한다.
예시 - 키워드인자
def kwpacking(**kwargs):
print(type(kwargs))
print(kwargs)
kwpacking(a=1, b=2, c=3)
2. Unpacking
- packing은 여러개의 객체를 하나의 객체로 합쳐주는 기능이다.
- 반대로 unpacking은 여러개의 객체로 합쳐진 하나의 객체를 풀어내는 기능이다.
- unpacking을 하기 위해서는 위치인자(*) 또는 키워드인자(**)를 붙여주면 된다.
- Container 타입의 객체라면 unpacking이 가능하다.
예시 - unpacking
def sum(a, b, c):
return a + b + c
numbers = [1,2,3]
print(sum(numbers)) # Error 발생
# => numbers는 packing 되어있는 객체로, sum함수의 매개변수 갯수에 맞지 않다.
print(sum(*numbers)) # unpacking을 통해 성공적으로 실행
# => 6 출력
sum(*numbers) # 6출력
sum(*[1,2,3]) # 6출력
sum(1,2,3) # 6출력
# => 위 세가지 명령어는 동일한 의미를 갖는다.
3. 참고자료
'Algorithm > 알고리즘 공부노트' 카테고리의 다른 글
함수형 프로그래밍에 대하여 (0) | 2021.12.29 |
---|---|
알고리즘 개념 총정리 - 탐색 및 기타 (0) | 2021.12.23 |
알고리즘 개념 총정리 - 정렬 (0) | 2021.12.23 |
Return에 대하여 (0) | 2021.11.28 |
파이썬 클래스와 self의 의미 (0) | 2021.11.06 |
댓글