Python | 가변객체와 불변객체(mutable, immutable)

Sua·2020년 12월 17일
0

Python

목록 보기
6/28
post-thumbnail

객체란?

파이썬은 객체 지향 언어이다. 파이썬에선 모든 것이 객체로 이루어져 있다.

객체의 특성

객체는 value, type, identity 3가지 특성을 갖는다.

  • value : 객체가 갖는 값이다.
  • type : 객체가 갖는 유형이며, type()함수를 통해 알 수 있다.
  • id : 객체의 메모리 주소를 의미하며, id()함수를 통해 알 수 있다.

가변객체와 불변객체

가변객체는 객체의 '값'을 바꿀 수 있고, 불변객체는 객체의 '값'을 바꿀 수 없다.

가변객체(mutable)

가변객체는 생선이후 값을 바꿀 수 있는 객체이다. 값을 바꾸려면 객체를 새롭게 생성해야 한다.

  • list
  • set
  • dict

불변객체(immutable)

불변객체는 생성이후 값을 바꿀 수 없는 객체이다.

  • int
  • float
  • bool
  • str
  • tuple
  • frozenset

불변객체를 사용하는 이유는?

불변객체는 외부에서 임의로 내부의 값을 제어할 수 없기 때문에 객체의 자율성이 보장되고, 프로그램 내에서 변하지 않는 즉 고정된 부분이 많아짐으로써 프로그램 안정도를 높일 수 있다.

본 포스팅은 아래의 사이트를 참고하여 작성되었습니다.
https://velog.io/@kyle/%EB%B6%88%EB%B3%80-%EA%B0%9D%EC%B2%B4%EB%9E%80-Java-Immutable-Object

profile
Leave your comfort zone

0개의 댓글