immutable : 변하지 않는 자료형
정수, 실수, 문자열, 튜플
a='hello world'
print(id(a),a) #4510859888 hello world
a+='...change'
print(id(a), a) #4512169808 hello world...change
a라는 변수에 문자열을 입력했다.
같은 a라는 변수에 다른 문자열을 += 연산으로 추가하여 변경하였다.
a 변수에 있는 문자열이 수정되었다고 생각할 수 있지만,
id()으로 a가 저장된 주소값을 확인해보면, 다른 객체 a가 생성된 것을 확인할 수 있다.
기존의 hello world라는 문자열 객체는 객체를 참조하고 있는 변수가 아무것도 없기 때문에 사라진다.
mutable : 변할 수 있는 자료형
리스트, 딕셔너리, 집합
b=[1,2,3,4]
print(id(b),b) #4510735808 [1, 2, 3, 4]
b.append(5)
print(id(b),b) #4510735808 [1, 2, 3, 4, 5]
리스트에 append로 값을 추가했다.
b의 주소값이 유지되고, 자료가 변경되었다.
'Language > Python' 카테고리의 다른 글
파이썬 객체지향 - 추상화, 상속, 다형성, 캡슐화 (0) | 2022.07.28 |
---|---|
파이썬 - 클래스변수, 인스턴스변수, 클래스메서드, 인스턴스메서드, 스태틱메서드 (0) | 2022.07.28 |
딕셔너리 메서드 - get, setdefault, pop, update (0) | 2022.07.26 |
셋(set) 메서드 - add, update, remove, discard (0) | 2022.07.26 |
리스트 메서드 - append, extend, insert, remove, pop.... (0) | 2022.07.26 |