[파이썬3.0] 객체에 대해
프로그램 언어/파이썬2014. 6. 24. 22:23
을 이용하여 공백 문자를 제거한 뒤에 같은 객체에 저장하는 것을 보면 의문이 생기는데
파이썬의 문자열은 불변형이어서 일단 만들어지면 바꿀 수 없기 때문이다.
무슨 말인지 모르겠죠?
즉, 문자열에서 공백을 제거한 문자열을 새로 생성 하고, 다시 객체 xxxxx가 그 문자열을 가리킴으로써 새로운 문자열이 할당되는 방식이다.
그리고 나서 과거 만들어 졌던 문자열을 삭제 된다.(물론 가비지 컬렉션에 의해)
이 삭제된 부분의 메모리를 회수해서 재사용한다.
문자열을 불변형으로 만든 이유
같은 문자열을 가리키는 두 개의 변수가 있고,
그 중 한 변수가 해당 문자열을 소문자로 혹은 대문자로 변환한 것으로 변형하면
파이썬은 새로 문자열을 만들고 그 것을 가리키게 한다.
그러나 남은 변수는 기존에 것을 가리키기에 변형을 하면 안되기에 불별형으로 만든 것이다.
터플과 수치 데이터는 문자열과 같이 불변형이다.
그 외에 부분은 TypeError 예외를 발생시키는 것이 나온 것들은 다 불변형이다.
'프로그램 언어 > 파이썬' 카테고리의 다른 글
[파이썬3.0] 데이터 정렬 2 (0) | 2014.06.24 |
---|---|
[파이썬3.0] 데이터 정렬 (0) | 2014.06.24 |
[파이썬3.0]데이터 저장과 예외처리-finally,with절 등 (0) | 2014.06.23 |
[파이썬3.0] 피클링 (0) | 2014.06.15 |
[파이썬3.0] 모듈 공유 (0) | 2014.06.15 |
댓글()