Memahami Perbezaan Antara Ujian Kesamaan "==" dan "is" dalam Python
Dalam Python, membezakan antara "==" dan ujian kesamaan "adalah" adalah penting apabila melakukan perbandingan. Walaupun kedua-dua pengendali menilai kesaksamaan, mereka berbeza dalam prinsip asasnya.
Ujian "is":
Operator "is" menyemak sama ada dua pembolehubah merujuk kepada objek yang sama dalam ingatan. Ini bermakna ia menilai jika kedua-dua pembolehubah menghala ke lokasi yang sama dalam RAM komputer.
"==" Ujian:
Pengendali "==", sebaliknya, membandingkan nilai dua objek. Ia menentukan sama ada nilai yang disimpan oleh pembolehubah adalah sama.
Aplikasi pada Senarai:
Untuk objek tidak berubah seperti rentetan dan integer, kedua-dua "adalah" dan "== "kembali hasil yang sama. Walau bagaimanapun, tingkah laku berbeza untuk objek boleh ubah seperti senarai. Pertimbangkan contoh berikut:
L = [] L.append(1) if L == [1]: # True if L is [1]: # False
Dalam contoh ini, ujian "==" mengembalikan Benar kerana nilai senarai L dan [1] adalah sama. Walau bagaimanapun, ujian "adalah" mengembalikan Palsu kerana kedua-dua pembolehubah tidak merujuk kepada objek yang sama dalam ingatan. Ini kerana L ialah rujukan kepada senarai asal, manakala [1] ialah objek senarai yang baru dibuat.
Objek Lebih Besar:
Untuk objek yang lebih besar seperti senarai, "is" hanya akan mengembalikan True jika kedua-dua pembolehubah menghala ke objek yang sama. Contohnya:
a = [1, 2, 3] b = a if b is a: # True b[:] = [4, 5, 6] if b is a: # False
Pertimbangan Caching:
Perlu diingat bahawa Python menyimpan cache objek integer kecil dan literal rentetan. Akibatnya, dalam kes tertentu, "==" dan "is" mungkin mengembalikan hasil yang sama. Walau bagaimanapun, ini adalah butiran pelaksanaan dan tidak boleh dipercayai.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Operator '==' dan 'is' Python untuk Ujian Kesaksamaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!