패킹과 언패킹

에스타고어·2023년 4월 28일
0

파이썬

목록 보기
1/3

요약

패킹은 함수 정의할 때, "들어오는 인수를 모두 매개변수에 묶어주세요~"

언패킹은 함수 호출할 때, "해체하여 각각의 매개변수에 전달해주세요~"

   print("가나다 abc 123")
   print("가나다", "abc 123")
   print("가나다", "abc", "123")

print 함수는 몇 개의 인자를 받던지 상관하지 않고 출력

print 함수처럼 사용자 지정함수도 인자의 개수를 유연하게 받을 수 있도록 하려면
packing을 지원받아야 함

패킹 :

인자로 받은 여러개의 값을 하나의 객체로 합쳐서 받을 수 있도록 관리하는 것

위치인자 패킹은 * 한개를 매개변수 앞에 붙임으로 사용함
위치인자는 tuple 자료형으로 하나의 객체가 되어 관리함

키워드 인자 패킹은 * 두개를 매개변수 앞에 붙임으로 사용함
키워드 인자는 패킹한 인자들을 키워드와 인자 쌍으로 이뤄진 딕셔너리로 관리함

언패킹 :

여러개의 객체를 하나의 객체로 합쳐주는 패킹과 달리 여러개의 객체를 포함하고 있는 하나의 객체를 풀어준다.

함수에서 unpacking을 할때는 매개변수에 *을 붙이는게 아니라 인자 앞에 붙여서 사용함

동일하게 위치인자를 unpacking 하는 경우는 *를, 키워드인자를 unpacking하는 경우 **를 사용함

※ *를 붙이는 행위는 매개변수가 존재하는 경우에만 한함

위치인자를 unpacking한다고 해서 위치인자가 꼭 tuple 자료형일 필요는 없음

container 객체라면 모두 가능(문자열, 리스트, 튜플, 배열, 딕셔너리)

키워드 인자를 unpacking할 때는 딕셔너리가 필요함

profile
아직 Newbie

0개의 댓글