Python의 문자열은 변경할 수 없습니다. 즉, 문자열이 생성되면 변경할 수 없습니다. 문자열을 생성하고 동일한 문자열을 생성하여 다른 변수에 할당하면 둘 다 동일한 문자열/메모리를 가리키게 됩니다. 예를 들어,
>>> a = 'hi' >>> b = 'hi' >>> id(a) 43706848L >>> id(b) 43706848L
이렇게 문자열 객체를 재사용하는 것을 파이썬에서는 인턴이라고 합니다. 동일한 문자열은 동일한 ID를 갖습니다. 그러나 Python은 문자열을 인턴으로 보장하지 않습니다. 코드 개체 상수가 아니거나 문자 + 숫자 + 밑줄 범위를 벗어난 문자를 포함하는 문자열을 생성하면 id() 값이 재사용되지 않는 것을 볼 수 있습니다.
주어진 문자열의 id를 다음과 같이 변경합니다. 두 개의 다른 식별자에 할당합니다. 발견 시 이러한 변수의 ID가 다릅니다. 지정된 문자열에 알파벳, 숫자, 밑줄 이외의 문자가 포함되어 있기 때문입니다.
>>> a = 'weworks_45#@$' >>> b = 'weworks_45#@$' >>> id(a) 96226208L >>> id(b) 91720800L