편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.04.11

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


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

    >>> 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에다가 같은 값을 할당하였는데 다른 값이 리턴되는 이유를 모르겠네요.

  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.04.10

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


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

    >>> 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에다가 같은 값을 할당하였는데 다른 값이 리턴되는 이유를 모르겠네요....