Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Penggabungan Rentetan Nampaknya Memutasi Rentetan Tidak Berubah dalam Python?

Bagaimanakah Penggabungan Rentetan Nampaknya Memutasi Rentetan Tidak Berubah dalam Python?

Barbara Streisand
Lepaskan: 2024-10-29 20:22:30
asal
666 orang telah melayarinya

How Can String Concatenation Seem to Mutate Immutable Strings in Python?

Rentetan Python: Entiti Kekal dan Kekeliruan Tugasan

Python berbangga dengan kebolehubahan dalam rentetannya, membayangkan bahawa nilai rentetan setelah dicipta tidak boleh diubah . Walau bagaimanapun, tingkah laku membingungkan yang dihadapi dalam percubaan penyambungan rentetan menimbulkan persoalan tentang kebolehubahan ini.

Teka-teki: Mengubah Rentetan Tidak Boleh Berubah dengan Penggabungan?

Pertimbangkan coretan kod berikut:

<code class="python">a = "Dog"
b = "eats"
c = "treats"

print(a, b, c)  # Dog eats treats

print(a + " " + b + " " + c)  # Dog eats treats

print(a)  # Dog

a = a + " " + b + " " + c
print(a)  # Dog eats treats  # Surprise!</code>
Salin selepas log masuk

Kod pada mulanya memulakan tiga rentetan, kemudian menggabungkannya dengan ruang. Apa yang mengejutkan kami, nilai perubahan selepas penugasan semula kepada hasil yang digabungkan.

Pembubaran: Penugasan Semula Pembolehubah, Bukan Mutasi Rentetan

Kunci untuk memahami tingkah laku ini terletak dalam mengiktiraf bahawa rentetan Python sememangnya tidak berubah, manakala rujukannya boleh berubah. Apabila kami menetapkan semula a dalam baris terakhir, kami tidak mengubah suai rentetan "Anjing" sedia ada. Sebaliknya, kami mencipta rentetan baharu "Dog eats treats" dan memberikan rujukannya kepada a.

The Immutable Truth Remains

Pada dasarnya, pembolehubah rentetan menyimpan alamat (atau rujukan) kepada nilai rentetan, bukan nilai itu sendiri. Kami boleh menetapkan semula pembolehubah kepada alamat yang berbeza, tetapi nilai rentetan pada alamat tersebut kekal tidak boleh diubah.

Oleh itu, walaupun ia mungkin kelihatan seolah-olah kami mengubah suai rentetan dengan gabungan, kami hanya mencipta rentetan baharu dan menetapkan semula rujukan . Ketidakbolehubahan rentetan kekal utuh.

Atas ialah kandungan terperinci Bagaimanakah Penggabungan Rentetan Nampaknya Memutasi Rentetan Tidak Berubah dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan