Membandingkan pembolehubah kepada None ialah operasi biasa dalam Python. Walau bagaimanapun, anda mungkin telah melihat percanggahan dalam sintaks yang digunakan, membawa kepada persoalan sama ada untuk menggunakan "adalah" atau ==.
Secara umum, adalah disyorkan untuk menggunakan "adalah" apabila membandingkan pembolehubah kepada Tiada . Sebab untuk ini ialah "is" menyemak identiti objek, manakala == menyemak kesamaan objek. Dalam Python, hanya terdapat satu objek None, jadi membandingkan apa-apa dengan None menggunakan "is" akan sentiasa mengembalikan True jika objek tersebut adalah objek yang sama.
Sebaliknya, == menyemak kesamaan objek. Ini bermakna ia akan mengembalikan True jika kedua-dua objek adalah sama, walaupun ia bukan objek yang sama. Sebagai contoh, pertimbangkan kod berikut:
class Negator(object): def __eq__(self, other): return not other thing = Negator() print(thing == None) # True print(thing is None) # False
Dalam contoh ini, kelas Negator mentakrifkan kaedah eq yang mengembalikan True apabila objek tidak sama. Apabila membandingkan sesuatu dengan Tiada menggunakan ==, kaedah eq tersuai dipanggil, menghasilkan Benar. Walau bagaimanapun, apabila membandingkan menggunakan is, kita melihat bahawa ia bukan objek yang sama, mengakibatkan Palsu.
Oleh itu, jika anda menyemak dengan ketat sama ada objek adalah sama dengan Tiada (iaitu, menyemak ketiadaan), ia disyorkan untuk menggunakan "adalah". Walau bagaimanapun, jika anda menyemak kesamarataan (iaitu, menyemak sama ada dua objek mempunyai nilai yang sama), anda harus menggunakan ==.
Atas ialah kandungan terperinci Python Tiada Perbandingan: 'adalah' atau ==?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!