Saya baru saja memulai beberapa manipulasi string dan menemukan pertanyaan ini. Saya mungkin mencoba melakukan sesuatu seperti OP, "saya yang biasa". Jawaban sebelumnya tidak menjernihkan kebingungan saya, tetapi setelah memikirkannya sedikit, saya akhirnya "mengerti".
Selama a, b, c, d, dan ememiliki nilai yang sama, mereka referensi ke tempat yang sama. Memori disimpan. Begitu variabel mulai memiliki nilai yang berbeda, mereka mulai memiliki referensi yang berbeda. Pengalaman belajar saya berasal dari kode ini:
import copy
a = 'hello'
b = str(a)
c = a[:]
d = a + ''
e = copy.copy(a)
print map( id, [ a,b,c,d,e ] )
print a, b, c, d, e
e = a + 'something'
a = 'goodbye'
print map( id, [ a,b,c,d,e ] )
print a, b, c, d, e
Output yang dicetak adalah:
[4538504992, 4538504992, 4538504992, 4538504992, 4538504992]
hello hello hello hello hello
[6113502048, 4538504992, 4538504992, 4538504992, 5570935808]
goodbye hello hello hello hello something