Project Hub

mutable object & immutable object 본문

Python/기초 개념

mutable object & immutable object

safy 2022. 8. 15. 21:29
728x90
반응형

객체

Python 의 모든 데이터 타입은 객체(object)다.

  • 객체에는 가변객체(mutable)와 불변객체(immutable)가 있다.
  • 객체에는 3가지 특성인 값, 유형, 정체성이 있다. 
    • 값(Value): 가변 객체는 값이 변할 수 있다. 반면에 불변 객체는 값이 변하지 않는다.
    • 유형(type): type() 함수를 통해 객체의 유형, 데이터 타입을 알 수 있다.
    • 정체성((Identity): id()  함수를 통해 각각의 객체를 식별하기 위한 고유 번호를 알 수 있다.
  • 보통의 경우, 불변 객체 타입이 가변 객체 타입보다 효율적이다.

가변 객체

  • 객체 생성 이후 값을 변경할 수 있는 객체를 의미한다.
  • list, set, dict 가 가변 객체에 속한다.
mutable_obj = [1,2,3,4]

>>> mutable_obj

[1,2,3,4]

mutable_obj[1] = 5

>>> mutable_obj

[1,5,3,4]

 

불변 객체

  • 객체 생성 이후 값을 변경할 수 없는 객체를 의미한다.
  • int, float, bool, tuple, string, unicode 가 불변 객체에 속한다.
>> my_str = 'Hello, World!'
'Hello, World!

>>> my_str[2] = '1' # my_str의 2번째 값을 '1'로 수정한다
TypeError: 'str' object does not support item assignment

#오류 발생
#오류가 발생한 이유는 문자열(String)이 불변이기 때문이다.

 

728x90
반응형

'Python > 기초 개념' 카테고리의 다른 글

문자열 패킹과 언패킹  (0) 2022.10.14
문자열  (0) 2022.10.14
얕은 복사와 깊은 복사  (0) 2022.10.14
숫자  (3) 2022.10.03
Comments