The ==
nilai tes Operator kesetaraan. The is
identitas tes Operator objek, tes Python apakah kedua benar-benar objek yang sama (yaitu, hidup di alamat yang sama di memori).
>>> a = 'banana'
>>> b = 'banana'
>>> a is b
True
Dalam contoh ini, Python hanya membuat satu objek string, dan keduanya a
dan b
merujuknya. Alasannya adalah bahwa Python secara internal menyimpan dan menggunakan kembali beberapa string sebagai optimisasi, hanya ada string 'pisang' dalam memori, dibagi oleh a dan b; Untuk memicu perilaku normal, Anda perlu menggunakan string yang lebih panjang:
>>> a = 'a longer banana'
>>> b = 'a longer banana'
>>> a == b, a is b
(True, False)
Saat Anda membuat dua daftar, Anda mendapatkan dua objek:
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False
Dalam hal ini kita dapat mengatakan bahwa kedua daftar itu setara, karena mereka memiliki elemen yang sama, tetapi tidak identik, karena mereka bukan objek yang sama. Jika dua objek identik, mereka juga setara, tetapi jika mereka setara, mereka tidak harus sama.
Jika a
merujuk ke objek dan Anda tetapkan b = a
, maka kedua variabel merujuk ke objek yang sama:
>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True