변수에 값이 어떻게 저장되나요?

Seong Woong Kim·2023년 3월 13일
0

Python

목록 보기
8/18

💡 이 글은 쪼개진 조각처럼 부분별로 알고 있는 Python을 AtoZ부터 다시 끝까지 다져보자 라는 생각으로 파이썬 코딩 도장에서 공부한 것을 정리하는 글 & 시리즈입니다. 💡



파이썬은 값 자체도 객체입니다.

  • 그래서 변수에 값을 그대로 저장하지 않고 객체를 가리키는 방식을 사용합니다.
  • 예를 들어서 다음과 같이 x와 y에 2000을 할당했다면 x와 y는 단지 2000이라는 객체를 가리킬 뿐입니다.

sys.getrefcount 함수를 사용하면 현재 객체가 몇 번 사용되었는지 확인할 수 있습니다

  • 객체를 사용(참조)한 횟수를 레퍼런스 카운트(reference count)라고 부릅니다).
import sys
print(sys.getrefcount(2000))    # 2: Windows에서 처음 레퍼런스 카운트는 2
                                # 3: 리눅스에서 처음 레퍼런스 카운트는 3
x = 2000                        # x에 2000을 저장
print(sys.getrefcount(2000))    # 3: 2000을 한 번 사용하여 레퍼런스 카운트 1 증가(Windows)
                                # 4: 리눅스
y = 2000                        # y에 2000을 저장
print(sys.getrefcount(2000))    # 4: 2000을 한 번 사용하여 레퍼런스 카운트 1 증가(Windows)
                                # 5: 리눅스
print(x is y)    # True: x와 y가 같은 객체를 가리키고 있으므로 True가 나옴

변수를 만들어 2000을 사용할 때마다 sys.getrefcount의 결과가 1씩 증가합니다.

  • 여기서 맨 처음에 sys.getrefcount(2000)를 실행했을 때 0이 아닌 2가 나오는 이유는 sys.getrefcount를 호출하면서 내부적으로 1000을 두 번 사용했기 때문입니다.
profile
성장과 연구하는 자세를 추구하는 AI 연구개발자

0개의 댓글