728x90
Python unpacking은 변수에 여러 값을 한 번에 할당하는 기술입니다.
a, b = b, a가 사람의 뇌에서는 쉽게 작동하지만 컴파일 적 측면에서는 작동하기 어렵습니다.
그러나 python은 unpacking 기능을 통해 변수에 여러 값을 한번에 할당하여 기능을 구현합니다.
그래서 내부적으로 어떻게 구현하는가 호기심이 갑니다.
a = 10
b = 20
a, b = b, a # a는 20, b는 10
기본적으로 이렇게 작동합니다:
- 우측 튜플 생성: 먼저 b, a가 평가됩니다. 이는 튜플 (b, a)를 생성합니다.
- 좌측 변수에 할당: 그 다음, 튜플 (b, a)의 첫 번째 값인 b가 a에, 두 번째 값인 a가 b에 할당됩니다.
임시 튜플을 생성하는 과정이 있습니다
a, b = b, a는 사실 다음의 두 단계를 거칩니다:
- 튜플 생성: 우측의 b, a는 Python이 내부적으로 (b, a)라는 튜플을 생성하는 과정을 포함합니다. 이는 두 값을 저장하는 객체로, Python은 이 튜플을 생성하여 스택에 저장합니다.
- 값 할당: 그 후, 이 튜플을 언패킹하여 좌측의 변수 a와 b에 각각 값을 할당합니다.
그 뒤 생성 된 튜플은 참조되지 않으므로 GC의 대상이 됩니다
'Python' 카테고리의 다른 글
Python/Django 기술면접 질문 (0) | 2025.03.05 |
---|---|
스트라이드와 슬라이스를 한 식에 함께 사용하지 말라 (0) | 2025.02.06 |
:= 바다코끼리 연산자 (0) | 2025.02.06 |
정렬 순서를 커스터마이징: cmp_to_key (0) | 2024.11.05 |
[Python] error return 방법 (0) | 2024.04.09 |