Tuyên bố a = a + " " + b + " " + c
có thể được chia nhỏ dựa trên con trỏ.
a + " "
cho tôi biết số a
trỏ đến, không thể thay đổi và thêm " "
vào bộ làm việc hiện tại của tôi.
bộ nhớ:
working_set = "Dog "
a = "Dog"
b = "eats"
c = "treats"
+ b
nói cho tôi những gì b
điểm đến, mà không thể thay đổi, và thêm nó vào hiện tại làm việc thiết lập. bộ nhớ
:
working_set = "Dog eats"
a = "Dog"
b = "eats"
c = "treats"
+ " " + c
nói thêm " "
để các thiết lập hiện.Sau đó, hãy cho tôi những gì c
điểm để không thể thay đổi và thêm nó vào bộ làm việc hiện tại. bộ nhớ:
working_set = "Dog eats treats"
a = "Dog"
b = "eats"
c = "treats"
Cuối cùng, a =
nói thiết lập con trỏ của tôi để trỏ đến tập kết quả.
bộ nhớ:
a = "Dog eats treats"
b = "eats"
c = "treats"
"Dog"
được khai hoang, vì không có nhiều gợi ý kết nối với nó là đoạn bộ nhớ. Chúng tôi không bao giờ sửa đổi phần bộ nhớ "Dog"
cư trú, đó là những gì có nghĩa là không thay đổi. Tuy nhiên, chúng tôi có thể thay đổi nhãn nào, nếu có, trỏ đến phần đó của bộ nhớ.
Nguồn
2012-02-01 15:06:17
Chuỗi chính nó là bất biến nhưng nhãn có thể thay đổi. – mitch
Việc gán một giá trị mới cho biến hiện tại là hoàn toàn hợp lệ. Python không có hằng số. Điều này độc lập với khả năng biến đổi loại dữ liệu. –
Bạn có thể muốn xem xét hàm 'id()'. 'a' sẽ có một id khác trước và sau khi gán, chỉ ra rằng nó đang trỏ vào các đối tượng khác nhau. Tương tự như vậy với mã như 'b = a' bạn sẽ thấy rằng' a' và 'b' sẽ có cùng id, cho biết chúng đang tham chiếu cùng một đối tượng. – DRH