Python Hiçbiri karşılaştırıldığında: kullanımı "" ==etmeli miyim?
Olası Çoğalt:
When is the `==` operator not equivalent to the `is` operator? (Python)
Python 2 kullanıyorum.x.
Editörüm bana bir 'uyarı' my_var == None ama my_var is None kullandığım zaman herhangi bir uyarı ben karşılaştırmak altını verir.
Python kabuğunda bir test yaptım ve her ikisi de geçerli sözdizimi vardır, ama editörüm my_var is None tercih olduğunu söyleyerek gibi görünüyor belirledi.
Bu yüzden, neden bu davayı?
CEVAP
Özet:
Bir nesnenin karşı kontrol etmek istediğinizde is kullanınkimlik(örneğin, eğer var None olup olmadığını görmek için kontrol). Kontrol etmek istediğinizde == kullanıneşitlikvar 3? eşit olarak (örn.
Açıklama:
my_var == None True döner nerede özel sınıflar var
e.g:
class Negator(object):
def __eq__(self,other):
return not other
thing = Negator()
print thing == None #True
print thing is None #False
is nesne denetlerkimlik. Aslında aynı nesne (sadece değil . sadece 1 nesne olup olmadığını kontrol edin my_var is None bunu None var ^em>eşdeğernesneleri)
Başka bir deyişle, == is nesne kimlik kontrolleri ise: denklik nesneden nesne için tanımlanmış olan) bir kontrol edin
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

Nasıl değişmez bir " baskı miyim;{}&qu...
Nasıl açık birden fazla dosya "Py...
&Quot;kullanımı" Python iddia ned...
Kullanımı "genel" Python ana...
Neden &; yoksa " someobj:& = = Hiçbiri...