Python

a, b = b, a 가 동작하는 방식

두잇 두두 2025. 2. 6. 11:15
728x90

Python unpacking은 변수에 여러 값을 한 번에 할당하는 기술입니다.

a, b = b, a가 사람의 뇌에서는 쉽게 작동하지만 컴파일 적 측면에서는 작동하기 어렵습니다.

그러나 python은 unpacking 기능을 통해 변수에 여러 값을 한번에 할당하여 기능을 구현합니다.

 

그래서 내부적으로 어떻게 구현하는가 호기심이 갑니다.

a = 10
b = 20
a, b = b, a  # a는 20, b는 10

기본적으로 이렇게 작동합니다:

  1. 우측 튜플 생성: 먼저 b, a가 평가됩니다. 이는 튜플 (b, a)를 생성합니다.
  2. 좌측 변수에 할당: 그 다음, 튜플 (b, a)의 첫 번째 값인 b가 a에, 두 번째 값인 a가 b에 할당됩니다.

 

임시 튜플을 생성하는 과정이 있습니다

a, b = b, a는 사실 다음의 두 단계를 거칩니다:

  1. 튜플 생성: 우측의 b, a는 Python이 내부적으로 (b, a)라는 튜플을 생성하는 과정을 포함합니다. 이는 두 값을 저장하는 객체로, Python은 이 튜플을 생성하여 스택에 저장합니다.
  2. 값 할당: 그 후, 이 튜플을 언패킹하여 좌측의 변수 a와 b에 각각 값을 할당합니다.

 

그 뒤 생성 된 튜플은 참조되지 않으므로 GC의 대상이 됩니다