==
Operatör test değeri eşdeğerlik. is
Operatör testleri nesne kimliği, iki olsun Python testler gerçekten aynı nesne (bellekte aynı adreste yani canlı) bulunmaktadır.
>>> a = 'banana'
>>> b = 'banana'
>>> a is b
True
Bu örnekte, Python sadece ve her ikisi de tek bir dize nesnesini oluşturan a
ve b
buna karşılık gelir. Bunun nedeni, Python'un bazı dizeleri dahili olarak önbelleğe alması ve bir optimizasyon olarak yeniden kullanmasıdır. Normal davranışı tetiklemek için daha uzun dizeler kullanmanız gerekir:
>>> a = 'a longer banana'
>>> b = 'a longer banana'
>>> a == b, a is b
(True, False)
İki liste oluşturduğunuzda, iki nesne elde edersiniz:
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
Bu durumda, iki listenin eşdeğer olduğunu söyleyebiliriz, çünkü aynı öğelere sahiptirler, ancak aynı değildirler, çünkü aynı nesne değildirler. İki nesne özdeş ise, aynı zamanda eşdeğerdirler, ancak eşdeğerlerse mutlaka aynı değildirler.
Bir a
nesneye atıfta bulunursanız ve atarsanız b = a
, her iki değişken de aynı nesneye başvurur:
>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True