[TIL] Python packing, unpacking

goodpark·2021년 4월 16일
0

TIL

목록 보기
10/15

패킹(packing)

  • 인자로 받은 여러개의 값을 하나의 객체로 묶어 변수에 대입하는 것.

위치 인자 패킹

  • * 한 개를 매개변수 앞에 붙여 사용.
  • 패킹하는 매개변수를 만나면 그 이후에 위치인자가 몇 개이던지, tuple로 하나의 객체가 되어서 관리.
  • 예시
def print_my_family(dad, mom, *brother):
    print("아버지 :", dad)
    print("어머니 :", mon)
    if brother:
        print("형제가족")
            for name in brother:
                print(name)

print_my_family("박아빠", '이엄마', '박우수', '박윤구')

키워드 인자 패킹

  • **를 사용하여 작성 가능
  • 패킹한 인자들은 키워드와 인자 쌍으로 이뤄진 딕셔너리로 관리.
  • 예시
def print_my_family(dad, mom, **brother):
    print("아버지 :", dad)
    print("어머니 :", mon)
    if brother:
        print("형제가족")
            for title, name in brother.items():
                print('{} : {}'.format(title, name))

print_my_family("박아빠", '이엄마', 큰형 = '박우수', 작은형 = '박윤구')

언패킹(unpacking)

  • 하나의 객체를 여러 개의 변수로 나누어 담는 방법.
  • 함수에서 언패킹 하는 경우, 매개변수에서 *를 붙이는게 아니라 인자 앞에 *를 붙여서 사용.
  • 해체된 결과가 함수의 매개변수에 갯수와 다르다면 에러 발생.
  • 예시
def sum(a, b, c):
    return a + b + c

numbers = [2, 4, 6]
sum(numbers) # error

print(sum(*numbers)) # 출력 : 12

위치 인자 언패킹

  • 위치 인자를 언패킹 할 때는 Container 객체라면 다 가능.(set, dict타입 포함)

키워드 인자 언패킹

  • 키워드 인자를 언패킹 하기 위해서는 잉ㄴ자가 key인자로 구성되어 있는 딕셔너리가 필요.

참조

https://wikidocs.net/22801

profile
행복코딩

0개의 댓글