파이썬의 모든 데이터 타입들은 객체(objecrt) 입니다.
객체 단위로 메모리 상에서 정보를 관리 하는데요, 이 객체에는 3가지 특성이 있습니다.
바로 값(value),유형(type),정체성(id) 입니다.
값(value) : 메모리에 기록된 내용. 가변 객체는 값이 변할 수 있지만 불변 객체는 변하지 않는다.
유형(type) : type() 함수를 통해 객체의 유형을 알 수 있으며 데이터의 종류를 보여준다.
정체성(identity) : id() 함수를 통해 알 수 있으며 각각의 객체를 식별하기 위한 고유번호(메모리 상에 위치한 주소 값)를 말한다.
데이터 타입 | |
---|---|
가변객체 | list, dict, set |
테스트1 | int, float, tuple, string, bool |
대표적인 가변객체인 list로 예를 들면
list = [1, 2, 3, 4, 5]
print(list)
# [1, 2, 3, 5]
list[1] = 12345
print(list)
# [1, 12345, 3, 4, 5]
대표적인 불변객체인 tuple로 예를 들면
tuple = (1, 2, 3, 4)
print(tuple)
# (1, 2, 3, 4)
tuple[1] = 222
"""
Traceback (most recent call last):
File "main.py", line 5, in <module>
immutable_tuple[1] = 222
TypeError: 'tuple' object does not support item assignment
"""
이와 같이 tuple은 한번 정의를 내리면 수정이 불가능하기에 다른 값으로 변경하기 위해서는 변수를 재선언하든지, 아니면 다른변수를 선언해야 한다.