반응형
파이썬에서 객체는 type 함수를 적용했을 때 반환되는 값입니다. 아래와 같은 객체들이 있습니다.
int, float, string, bool, unicode
list, tuple, dict, set
객체는 크게 둘로 나뉩니다. 가변객체와 불변객체입니다. 가변객체는 값을 바꿀 수 있는 객체이고, 불변객체는 값을 바꿀 수 없는 객체입니다.
가변 객체(mutable object) : list, dict, set
불변 객체(immutable object) : int, float, string, bool, tuple
이런 질문을 할 수 있습니다. 정수도 값을 바꿀 수 있는데? a=3 으로 넣었다가 a=5를 넣으면 값이 바뀌지 않느냐는 의문입니다. 이런 혼동을 방지하기 위해 가변과 불변을 더 명확히 정의해봅시다.
가변이라는 것은 id 가 변하지 않고 값을 바꿀 수 있는 것을 말합니다. id에 대한 이해가 필요합니다. 모든 객체는 세가지 특성을 갖습니다.
- 값(value)
- 유형(type)
- 정체성(id)
예를들어 a=3을 정의해봅시다. 값은 3이고, 타입은 int이고, id는 아래와 같습니다.
>>> a=3
>>> type(a)
<class 'int'>
>>> id(a)
140727555983072
a=5 로 바꾸면 id가 변합니다. 이건 값을 바꾼게 아니라, a를 다시 정의한 것입니다.
>>> a=5
>>> id(a)
140727555983136
값을 바꾼다는 것이 무엇인지 예를 들어봅시다. 리스트를 하나 정의합시다.
>>> L=[1,2,3]
>>> id(a)
2290636338048
값을 하나 바꿔봅시다. 여전히 id가 유지됨을 알 수 있습니다. 바로 이게 가변입니다.
>>> L[2]=10
>>> id(a)
2290636338048
반응형
'1. 파이썬 시작 > TIPS' 카테고리의 다른 글
파이썬 설치 경로 확인 방법 두가지 (0) | 2021.10.08 |
---|---|
'python'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다. (오류 해결 방법!!) (0) | 2021.10.08 |
파이썬 경로 추가 방법 (반영구적, 영구적) (2) | 2021.03.22 |
파이썬 설치경로 확인하는 법 (0) | 2021.03.22 |
파이썬 전역변수 지역변수 개념 (0) | 2021.03.09 |
댓글