Python/자료형과 기본 문법

Python 변수의 이해

Yonggyu 2023. 9. 13. 14:17
반응형

 변수로 객체값 참조하기

파이썬에서는 변수에 대한 자료형을 선언하지 않고 변수명만을 이용해 변수를 선언한 후 사용한다. 이말은 즉 파이썬은 자동으로 자료형이 결정된다는 말이다. 

 

>>> a = 3

파이썬 명령문에 a = 3을 선언하였다. 이와같이 선언하면 3이라는 정수값이 기억장소에 저장되는데 이 저장되는 값을 객체(Object) 라고 한다.  (객체는 모든 자료형으로 만들어질 수 있다.) (객체 = 데이터)

결국 변수는 객체가 할당된 기억장소의 주소를 저장하게되고 그 기억장소에 정수형 객체인 3이 담겨있는 것이다.

 

변수가 참조하는 객체의 주소를 확인하는함수 id가 있다.

id(변수명)
>>> a = 3
>>> a
3
>>>id(a)
140716134381408

결과로 알 수 있듯이 a를 출력하면 3이 출력되고 id(a)를 출력하면 객체의 주소가 출력된다.

*출력된 주소는 시스템에 따라 다를 수 있다.

>>> a = 1
>>> b = 1
>>> id(a), id(b)
(140716134381408, 140716134381408)

위를 보면 다른 변수임에도 같은 주소임을 알 수 있다, 즉 변수 a, b 둘다 1이라는 객체의 주소를 가르키고 있는것이다.

허나 이것은 파이썬의 메모리 절약 특성이다. 다른 예시를 보자

 

 

>>> a = 1
>>> b = 1.0
>>> a == b
True
>>> id(a), id(b)
(140716134381408, 140716134382413)

위의 예시는 값은 같지만 다른 종류의 자료형이기 때문에 다른 객체이다. 그래서 주소값이 다르다.

 

>>> a = [1,2]
>>> b = [1,2]
>>> a == b
True
>>> id(a), id(b)
(2408890974656, 2408928136064)

위의 예시는 변수 a, b는 리스트형의 변수로 선언되었다. 두 변수는 같은 값을 갖지만 다른 주소값을 갖는다. 리스트는 내용이 같더라도 또 다른 객체를 생성한다. 이것 또한 파이썬의 특성이다.

 

728x90
반응형

'Python > 자료형과 기본 문법' 카테고리의 다른 글

Python 연산자  (0) 2023.09.14
Python 주석, type(), 진수  (0) 2023.09.14
Python 자료형  (2) 2023.09.13
Python의 자료형 (숫자)  (0) 2023.06.22