Memahami Kata Kunci 'is' dalam Python untuk String Equality
Dalam Python, string equality boleh diuji menggunakan kedua-dua "==" dan kata kunci "adalah". Walau bagaimanapun, tingkah laku mereka berbeza dengan ketara.
Peranan Interning
Apabila rentetan dibuat dalam Python, penterjemah menyemak sama ada rentetan sedia ada dengan nilai yang sama wujud dalam jadual khas yang dipanggil "meja pelatih." Jika ditemui, rentetan sedia ada dikembalikan, jika tidak, rentetan baharu disimpan dalam jadual. Proses ini dikenali sebagai "interning."
Operator "=="
Operator "==" menguji kesamaan antara dua objek. Dalam kes rentetan, ia membandingkan nilai mereka dengan watak demi watak. Intern bukan faktor dalam perbandingan "==".
Kata kunci "is"
Kata kunci "is" membandingkan dua objek berdasarkan identitinya. Ia menyemak sama ada kedua-dua pembolehubah merujuk objek yang sama dalam ingatan. Pelatih memainkan peranan penting dalam perbandingan "adalah".
Mengapa Tidak Berfungsi untuk Lebihan Beban
Percubaan untuk mengatasi kaedah "__is__" pada kelas rentetan tersuai , seperti yang ditunjukkan dalam contoh yang disediakan, tidak akan berfungsi kerana "adalah" menyemak identiti, yang tidak boleh diubah. Ia ialah konsep Python terbina dalam yang tidak boleh ditakrifkan semula.
Bila Menggunakan "is" untuk String
"is" hanya boleh digunakan untuk kesamaan rentetan menyemak apabila rentetan telah dimasukkan secara eksplisit menggunakan fungsi "intern()". Dalam kebanyakan kes, adalah dinasihatkan untuk menggunakan "==" untuk perbandingan rentetan kerana ia lebih menyeluruh dan boleh dipercayai.
Pertimbangan Tambahan
Atas ialah kandungan terperinci Bilakah \'is\' Harus Digunakan untuk String Equality dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!