Tôi chỉ bắt đầu một số thao tác chuỗi và tìm thấy câu hỏi này. Tôi có lẽ đang cố gắng làm một cái gì đó giống như OP, "tôi bình thường". Những câu trả lời trước đây không làm rõ ràng sự bối rối của tôi, nhưng sau khi suy nghĩ một chút về nó, cuối cùng tôi đã "hiểu được".
Chừng nào a
, b
, c
, d
, và e
có giá trị như nhau, họ tham khảo để cùng một chỗ. Bộ nhớ được lưu. Ngay sau khi biến bắt đầu có các giá trị khác nhau, chúng bắt đầu có các tham chiếu khác nhau. Kinh nghiệm học tập của tôi đến từ mã này:
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
Đầu ra được in là:
[4538504992, 4538504992, 4538504992, 4538504992, 4538504992]
hello hello hello hello hello
[6113502048, 4538504992, 4538504992, 4538504992, 5570935808]
goodbye hello hello hello hello something