Chuỗi trong Python là bất biến (immutable), nghĩa là một khi chuỗi được tạo ra, nó không thể thay đổi. Khi bạn tạo một chuỗi, và nếu bạn tạo cùng chuỗi đó và gán cho biến khác, cả hai sẽ trỏ đến cùng một chuỗi/bộ nhớ. Ví dụ:
>>> a = 'hi' >>> b = 'hi' >>> id(a) 43706848L >>> id(b) 43706848L
Việc tái sử dụng đối tượng chuỗi này được gọi là interning trong Python. Các chuỗi giống nhau có cùng id. Nhưng Python không đảm bảo interning chuỗi. Nếu bạn tạo các chuỗi không phải hằng số code object hoặc chứa ký tự ngoài phạm vi chữ cái + số + underscore, bạn sẽ thấy giá trị id() không được tái sử dụng.
Chúng ta thay đổi id của chuỗi cho trước như sau. Chúng ta gán nó cho hai định danh khác nhau. Các id của các biến này khi tìm thấy là khác nhau. Điều này là do chuỗi cho trước chứa các ký tự khác ngoài chữ cái, số và underscore.
>>> a = 'weworks_45#@$' >>> b = 'weworks_45#@$' >>> id(a) 96226208L >>> id(b) 91720800L