완숙의 블로그

[Python] 3 - Variables 본문

Programing Language/Python

[Python] 3 - Variables

완숙 2019. 3. 20. 12:55

파이썬에서 사용하는 변수는 객체를 가리킨다.

여기서 객체란 파이썬에서 사용되는 모든 것 을 의미하는 말이다.

 

이게 무슨말?

 

이 개념에 대한 직관적인 설명을 잘해둔 페이지가 있어 여기 소개한다.

객체란?

 

신기하게도, C 에서 변수를 선언하면 각각 다른 메모리 공간에 상수로 들어갔던 것과 달리

파이썬에서는 같은 객체를 가리킨다.

 

예제로 직관적 이해를 해보도록 하자.

 

a = 3

 

먼저 이렇게 선언했을 때,

변수 a는 객체가 저장된 메모리 위치를 가리킨다.

또 오른쪽 3은, 정수 자료형 객체가 자동으로 메모리에 생성된다.

 

이렇게 보면 변수 a는 객체가 저장된 메모리의 위치를 가리키는 레퍼런스 라고 생각할 수 있다.

 

그리고 만약 내가 같은 객체를 다른 변수를 통해 가리킨다면, 같다고 뜬다.

 

>>> a = 3 
>>> b = 3 
>>> a is b 
True

 

a가 3을 가리키고 b도 3을 가리킨다.

즉 a=3 을 입력하는 순간 3이라는 정수형 객체가 생성되고 변수 a는 3이라는 객체의 메모리 주소를 가리킨다.

다음에 변수 b가 동일한 객체인 3을 가리킨다.

이제 3이라는 정수형 객체를 가리키는 변수가 2개가 됐다.

이 두 변수는 가리키고 있는 대상이 동일하다.

따라서 동일한 객체를 가리키고 있는지 아닌지에 대해서 판단하는 파이썬 내장 함수인 is 함수를

a is b처럼 실행했을 때 참(True)을 리턴하게 된다.

 

이렇게 하나의 객체를 가리키는 변수의 개수를 레퍼런스 카운트 (참조 개수) 라 한다.

여기서는 2가 되겠다.

Comments