파이썬에서 객체는 변경가능한(mutable) 객체와 변경불가능(immutable) 객체로 나뉜다.
mutable객체로는 list, set, dictionary 가 있고
위의 셋을 제외한 bool, int, float등이 immutable객체이다.
list | mutable |
set | mutable |
dict | mutable |
bool | immutable |
int | immutable |
float | immutable |
tuple | immutable |
str | immutable |
frozenset | immutable |
mutable
List
x=[1,2,3]
print(id(x))
x[2]=5
print(id(x)) #값을 바꿔도 주소는 그대로
>>2066410918472
>>2066410918472
Set
x={0:True,1:True,2:True}
print(id(x))
x[0]=False #{0:False,1:True,2:True}
print(id(x)) #값을 바꿔도 주소는 그대로
>>3146876058024
>>3146876058024
immutable
Int
x=1
print(id(x))
x+=1
print(id(x))
>>140712646963456
>>140712646963488
String
x='Python'
x[0]='A' #에러 발생
>>Traceback (most recent call last):
File ".....................................", line 2, in <module>
x[0]='A'
TypeError: 'str' object does not support item assignment
x='Python'
print(id(x))
x+='3'
print(id(x))
>>1813087795312
>>1813087831536
'Python' 카테고리의 다른 글
Python - 람다함수(익명함수) (0) | 2020.08.24 |
---|---|
Python - 전역 변수, 지역 변수 (0) | 2020.08.23 |
Python - 빠른 입력 (0) | 2020.08.17 |
Python - 함수 인자의 개수를 알 수 없을 때 (0) | 2020.08.11 |
Python - 예외처리 (0) | 2020.08.10 |