Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah Perbezaan Antara Operator '==' dan 'is' Python untuk Ujian Kesaksamaan?

Apakah Perbezaan Antara Operator '==' dan 'is' Python untuk Ujian Kesaksamaan?

Susan Sarandon
Lepaskan: 2024-12-30 02:28:23
asal
589 orang telah melayarinya

What's the Difference Between Python's

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

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