Python/Python 정리

[Python] 패킹(packing)과 언패킹(unpacking)

우준세 2021. 6. 26. 22:55
728x90
반응형

 

이번 포스팅은 파이썬을 공부하며 잘 몰랐던 기능인

언패킹에 대해 공부한 것을 정리한 것입니다.


1. 패킹(packing) 이란? 

- 패킹은 앞서 *args와 **kwargs 게시물에서 정리한 것과 같이

함수에서 여러 개의 매개변수를 쓰기 위해 사용하는 것입니다. 

 

- 정리한 링크를 달아놓겠습니다! 

https://wjunsea.tistory.com/59

 

[Python] *args와 **kwargs 정리

이번 포스팅은 파이썬을 사용하면서 함수에서 *와 **를 이해하기 위해 작성하는 포스팅입니다. 1. *args 이해 - args는 arguments의 줄임말입니다. 함수 인자로 *args를 대표적으로 쓰지만 다르게 써도

wjunsea.tistory.com


2. 언패킹(unpacking) 이란? 

- 패킹은 여러 매개변수를 하나의 매개변수로 만들어서 사용했다면

언패킹은 여러 매개변수를 포함하는 하나의 객체를 여러 개로 풀어주는 방법입니다.

 

- 패킹은 매개변수 앞에  * 를 사용하였다면 언패킹은 인수 앞에 * 를 사용합니다. 

 

예시)

def sum(a,b,c):
  return a+b+c

n = [1,2,3]

print("result : ", sum(*n))

 

결과)

- 입력을 리스트형으로 한꺼번에 매개변수로 넣었지만

* 를 앞에 넣어줌으로 언패킹이 되어 결과가 나온 것을 볼 수 있습니다. 

 

- 언패킹을 하지 않을 시 

def sum(a,b,c):
  return a+b+c

n = [1,2,3]

print("result : ", sum(n))

 

결과)

함수의 매개변수의 개수가 맞지 않는 에러가 발생하게 됩니다.

 

- 언패킹은 리스트뿐만 아니라 집합 타입의 경우에 사용이 가능합니다. 

def sum(a,b,c):
  return a+b+c

n = [1,2,3]
s = 'abc'
s1 = {'a', 'b', 'c'}
s2 = {'패킹' : 1, '언패킹' : 2, '이해완료' : 3}

print("result : ", sum(*n))
print("result : ", sum(*s))
print("result : ", sum(*s1))
print("result : ", sum(*s2))

 

결과)

 

 

언패킹에 대해서 정리해 보았습니다.

다음 포스팅으로 찾아오겠습니다!

감사합니다 :)

728x90
반응형