[파이썬3.0] 객체에 대해

프로그램 언어/파이썬|2014. 6. 24. 22:23
객체에 대해




파이썬 객체의 특징인 불변형과 가변형에 대해 알아보자.




xxxx.strip()
을 이용하여 공백 문자를 제거한 뒤에 같은 객체에 저장하는 것을 보면 의문이 생기는데

파이썬의 문자열은 불변형이어서 일단 만들어지면 바꿀 수 없기 때문이다.
무슨 말인지 모르겠죠?

즉, 문자열에서 공백을 제거한 문자열을 새로 생성 하고, 다시 객체 xxxxx가 그 문자열을 가리킴으로써 새로운 문자열이 할당되는 방식이다.
그리고 나서 과거 만들어 졌던 문자열을 삭제 된다.(물론 가비지 컬렉션에 의해)
이 삭제된 부분의 메모리를 회수해서 재사용한다.

문자열을 불변형으로 만든 이유
같은 문자열을 가리키는 두 개의 변수가 있고, 
그 중 한 변수가 해당 문자열을 소문자로 혹은 대문자로 변환한 것으로 변형하면
파이썬은 새로 문자열을 만들고 그 것을 가리키게 한다. 
그러나 남은 변수는 기존에 것을 가리키기에 변형을 하면 안되기에 불별형으로 만든 것이다.

터플과 수치 데이터는 문자열과 같이 불변형이다.

그 외에 부분은 TypeError 예외를 발생시키는 것이 나온 것들은 다 불변형이다.


댓글()