python 문자열 레퍼런스 관련해서 질문드립니다.

조회수 350회

안녕하세요, 공부하던 중 궁금한 점이 생겨서 질문합니다.

>>> a = "string1"
>>> b = "string1"
>>> id(a)
139694060887088
>>> id(b)
139694060887088

이렇게 string을 같은 값으로 변수에 할당하면 같은 레퍼런스에 할당되는 것으로 알고있습니다.

>>> a = "test string"
>>> b = "test string"
>>> id(a)
140016356534960
>>> id(b)
140016356535152

근데 같은 스트링이여도 2단어 이상인 경우에는 다른 레퍼런스가 할당되더라구요.

뭔가 2단어 이상의 스트링에는 다른 방법이 적용되는 건가요? 혹시 아시는분들은 답변 부탁드립니다.

일단 제가 찾아본 바로는, life time이 겹치지 않는 경우에 같은 id값을 가질 수 있다고 합니다.

참고 : https://docs.python.org/3/library/functions.html#id

근데 a의 값을 따로 수정한 것도 아니고, 바로 b에다가 같은 값을 할당하였는데 다른 값이 리턴되는 이유를 모르겠네요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)