Rumah > pembangunan bahagian belakang > Tutorial Python > Python Tiada Perbandingan: Sekiranya Anda Menggunakan 'is' atau '=='?

Python Tiada Perbandingan: Sekiranya Anda Menggunakan 'is' atau '=='?

Mary-Kate Olsen
Lepaskan: 2024-11-13 16:38:02
asal
1046 orang telah melayarinya

Python None Comparisons: Should You Use

Python None Comparisons: Patutkah Anda Gunakan "is" atau ==?

Dalam Python, anda mungkin menghadapi amaran apabila membandingkan pembolehubah dengan Tiada menggunakan ==, manakala tiada amaran dikeluarkan apabila menggunakan is. Kedua-dua sintaks adalah sah, tetapi penggunaan my_var ialah Tiada pada umumnya lebih disukai.

Mengapa "is" Diutamakan untuk Pemeriksaan Tiada?

Perbezaan utama antara ialah dan == terletak pada tujuan mereka. == memeriksa kesaksamaan, manakala adalah memeriksa identiti objek. Dalam kes membandingkan pembolehubah kepada Tiada, kami ingin menentukan sama ada pembolehubah itu secara khusus adalah objek None, bukan sekadar objek yang setara dengannya.

None ialah objek unik dalam Python, bermakna hanya ada satu contoh daripadanya. Apabila anda menggunakan my_var is None, anda sedang menyemak sama ada my_var dan None adalah objek yang sama. Semakan ini lebih spesifik dan boleh dipercayai daripada menggunakan my_var == Tiada.

Kesamaan lwn. Identiti

Untuk menggambarkan perbezaannya, pertimbangkan Negator kelas tersuai:

Jika anda mencipta tika Negator dan membandingkannya dengan Tiada, anda akan dapatkan:

benda == Tiada mengembalikan True kerana kelas Negator mengatasi kaedah eq untuk sentiasa mengembalikan True jika dibandingkan dengan mana-mana nilai lain kecuali dirinya sendiri. Walau bagaimanapun, perkara itu None returns False kerana kedua-dua objek itu bukan objek yang sama.

Conclusion

Untuk semakan None, secara amnya lebih disukai untuk menggunakan my_var is None to pastikan anda menyemak secara khusus untuk objek Tiada. == boleh digunakan apabila anda ingin menyemak kesaksamaan, tetapi perlu diingat bahawa ini mungkin tidak boleh dipercayai apabila berurusan dengan kelas tersuai yang mengatasi kaedah perbandingan.

Atas ialah kandungan terperinci Python Tiada Perbandingan: Sekiranya Anda Menggunakan 'is' atau '=='?. 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