[Python] -가변객체와 불변객체

김진수·2020년 11월 17일
0
post-thumbnail
post-custom-banner

객체

파이썬의 모든 데이터 타입들은 객체(objecrt) 입니다.
객체 단위로 메모리 상에서 정보를 관리 하는데요, 이 객체에는 3가지 특성이 있습니다.
바로 값(value),유형(type),정체성(id) 입니다.

값(value) : 메모리에 기록된 내용. 가변 객체는 값이 변할 수 있지만 불변 객체는 변하지 않는다.
유형(type) : type() 함수를 통해 객체의 유형을 알 수 있으며 데이터의 종류를 보여준다.
정체성(identity) : id() 함수를 통해 알 수 있으며 각각의 객체를 식별하기 위한 고유번호(메모리 상에 위치한 주소 값)를 말한다.

가변객체와 불변객체

데이터 타입
가변객체list, dict, set
테스트1int, 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은 한번 정의를 내리면 수정이 불가능하기에 다른 값으로 변경하기 위해서는 변수를 재선언하든지, 아니면 다른변수를 선언해야 한다.

profile
백엔드 개발자
post-custom-banner

0개의 댓글