반응형
변수로 객체값 참조하기
파이썬에서는 변수에 대한 자료형을 선언하지 않고 변수명만을 이용해 변수를 선언한 후 사용한다. 이말은 즉 파이썬은 자동으로 자료형이 결정된다는 말이다.
>>> 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 |