Özet:
is
Bir nesnenin kimliğine karşı kontrol etmek istediğinizde kullanın (örneğin var
, olup olmadığını kontrol etmek None
). Eşitliği==
kontrol etmek istediğinizde kullanın (örneğin Eşit mi?).var
3
Açıklama:
my_var == None
Geri döneceğiniz özel sınıflarınız olabilirTrue
Örneğin:
class Negator(object):
def __eq__(self,other):
return not other
thing = Negator()
print thing == None #True
print thing is None #False
is
nesne kimliğini kontrol eder . Sadece 1 nesne var None
, bu yüzden yaptığınızda my_var is None
, aslında aynı nesne olup olmadıklarını kontrol ediyorsunuz (sadece eşdeğer nesneler değil )
Başka bir deyişle, ==
eşdeğerlik kontrolü (nesneden nesneye tanımlanır), oysa is
nesne kimliğini kontrol eder:
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