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
557 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!

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