Rumah >pembangunan bahagian belakang >Tutorial Python >Python Tiada Perbandingan: Sekiranya Anda Menggunakan 'is' atau '=='?
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!