Pelajari operator identitas Python dan perbedaan antara operator == dan is

Pelajari operator identitas Python dan perbedaan antara operator == dan is

Artikel ini terutama dikuratori untuk menjelaskan operator penting dalam Python (“Operator identitas”) Dan bagaimana operator identitas berbeda (adalah, tidak) dari operator perbandingan (==).

Operator identitas

Operator identitas ("adalah" Dan "tidak") digunakan untuk membandingkan lokasi memori objek. Saat objek dibuat dalam memori, alamat memori yang unik dialokasikan untuk objek itu.

  • '==' membandingkan jika kedua nilai objek identik atau tidak.
  • 'adalah' membandingkan jika kedua objek tersebut termasuk dalam lokasi memori yang sama.

Buat tiga objek string Nama, Name1, Dan Name2. Objek String Nama Dan Name2 akan memiliki nilai yang sama dan Name1 akan memiliki nilai yang berbeda.

Ketika kita membuat objek -objek ini, apa yang terjadi di balik tempat kejadian, objek itu akan dibuat dalam memori dan akan tersedia selama masa pakai program.

Sekarang Anda dapat menggunakan operator perbandingan “==” Untuk memeriksa apakah kedua nilai objeknya sama. Output dari operator perbandingan akan menjadi boolean (BENAR atau PALSU) nilai.

Buat dan Bandingkan Objek

Sekarang Anda telah membandingkan dua nilai untuk menentukan kesetaraan, mari kita lihat bagaimana operator identitas bekerja.

Built-in Pengenal() Fungsi digunakan untuk mendapatkan “identitas"Dari suatu objek. Bilangan bulat yang akan unik dan konstan untuk objek selama masa hidupnya.

Untuk membuatnya sederhana menganggap ini sebagai pemerintahan yang unik PENGENAL atau ID emp Ditugaskan kepada Anda, juga nilai integer yang unik ditetapkan untuk setiap objek.

Nilai integer yang unik

Sekarang Anda dapat membandingkan 2 referensi objek menggunakan "adalah" operator.

Operator identitas

Saat saya membandingkan Nama Dan Name1 atau Name2 Menggunakan operator identitas apa yang dilakukannya di backend adalah hanya berjalan “ID (name) == id (name2)”. Sejak id (nama) Dan id (name2) Keduanya berbagi lokasi memori yang sama, ia kembali BENAR.

Sekarang inilah bagian yang menarik. Lihatlah contoh kami sebelumnya di mana keduanya Nama Dan Name1 memiliki nilai yang identik dan mengembalikan nilai integer yang sama saat kita berjalan pengenal() fungsi. Mengapa kamu berpikir "Name_new" Dan "Name_leObjek tidak identik meskipun mereka memiliki nilai yang sama dari tangkapan layar di bawah ini?

Nilai integer

Ini karena implementasi desain Python. Saat Anda membuat objek integer dalam jangkauan (-5.256) dan objek string lebih besar dari atau sama dengan 20 Chars, alih -alih membuat objek yang berbeda di memori untuk nilai yang sama objek ini bertindak sebagai penunjuk untuk membuat objek yang sudah dibuat.

Representasi bergambar di bawah ini akan memberi Anda gambaran yang jelas tentang apa yang telah kami lihat sejauh ini dalam artikel ini.

Representasi Diagram
Ringkasan

Dalam artikel ini, kita telah melihat apa itu operator identitas. Bagaimana operator perbandingan dan operator identitas digunakan, implementasi desain tentang bagaimana suatu objek dibuat dalam memori.