Ringkasan:
Gunakan is
ketika Anda ingin memeriksa identitas suatu objek (misalnya memeriksa untuk melihat apakah var
ada None
). Gunakan ==
saat Anda ingin memeriksa kesetaraan (mis. Apakah var
sama dengan3
?).
Penjelasan:
Anda dapat memiliki kelas khusus di mana my_var == None
akan kembaliTrue
misalnya:
class Negator(object):
def __eq__(self,other):
return not other
thing = Negator()
print thing == None #True
print thing is None #False
is
memeriksa identitas objek . Hanya ada 1 objek None
, jadi ketika Anda melakukannya my_var is None
, Anda memeriksa apakah mereka sebenarnya adalah objek yang sama (bukan hanya setara objek yang )
Dengan kata lain, ==
adalah pemeriksaan untuk kesetaraan (yang didefinisikan dari objek ke objek) sedangkan is
pemeriksaan untuk identitas objek:
lst = [1,2,3]
lst == lst[:] # This is True since the lists are "equivalent"
lst is lst[:] # This is False since they're actually different objects
is
- python.org/dev/peps/pep-0008/#programming-recommendations