Dalam Python, pengendali perbandingan (==) dan kaedah equals() digunakan dalam cara yang berbeza apabila bekerja dengan rentetan. Untuk membezakan antara operator == dan kaedah sama dalam Python, kita perlu menggunakannya dengan perbandingan rentetan. Perbandingan rentetan berlaku secara meluas apabila kami menggunakan rentetan dalam analisis data dan pembelajaran mesin. Dalam artikel ini, kita akan belajar cara membezakan antara operator == dan kaedah equals() apabila digunakan dengan rentetan.
== ialah operator perbandingan yang digunakan untuk membandingkan dua nilai rentetan. Mengembalikan Benar apabila nilai rentetan adalah sama dan Palsu apabila nilai rentetan tidak sama. Ia kembali benar walaupun rentetan disimpan di lokasi memori yang berbeza. Ia hanya membandingkan nilai rentetan untuk kesamaan.
Dalam contoh di bawah, kami mentakrifkan dua nilai rentetan str1 dan str2 dan memulakannya dengan nilai rentetan yang sama. Apabila kita membandingkan rentetan str1 dan str2 menggunakan pengendali ==, ia kembali benar kerana nilai kedua-dua rentetan adalah sama. p>
str1 = "Hello World" str2 = "Hello World" if str1 == str2: print("The strings are equal.") else: print("The strings are not equal.")
The strings are equal.
Kaedah __eq__ dalam Python digunakan untuk menentukan cara membandingkan objek kelas untuk kesamaan. Kaedah __eq__ mengambil dua parameter: diri (objek di sebelah kiri operator ==) dan lain-lain (objek di sebelah kanan operator ==). Kaedah __eq__ sentiasa mengembalikan nilai boolean (Benar atau Salah). Jika ia mengembalikan sesuatu selain daripada nilai Boolean, TypeError akan terhasil.
Dalam contoh di bawah, kami mencipta kelas yang dipanggil Orang yang mempunyai dua sifat, nama dan umur. Kemudian, kami mentakrifkan kaedah __eq__() dalam kelas untuk membandingkan sifat name dan umur objek person. Akhir sekali, buat dua kejadian kelas orang, p1 dan p2, dan bandingkannya menggunakan pengendali ==.
class Person: def __init__(self, name, age): self.name = name self.age = age def __eq__(self, other): if isinstance(other, Person): return self.name == other.name and self.age == other.age return False p1 = Person("John", 30) p2 = Person("John", 30) if p1 == p2: print("p1 and p2 are equal")
p1 and p2 are equal
== pengendali |
__eq__kaedah |
---|---|
== ialah kelakuan lalai dalam python apabila membandingkan nilai dua objek. |
Kaedah __eq__ perlu ditakrifkan secara eksplisit dalam kelas. |
== operator boleh digunakan untuk membandingkan objek daripada jenis data yang berbeza. |
Kaedah __eq__ hanya boleh membandingkan objek dari jenis yang sama |
Ia tidak mempunyai banyak fleksibiliti penyesuaian. |
Kaedah __eq__ boleh disesuaikan untuk jenis perbandingan tertentu. |
Ia tidak boleh diwarisi dan harus ditakrifkan secara eksplisit untuk setiap kelas. |
Kaedah __eq__ boleh diwarisi daripada kelas induk. |
Dalam artikel ini, kami membincangkan cara == operator dan kaedah __eq__ berfungsi dalam Python. Operator == membandingkan rentetan tanpa melihat lokasi memori rentetan. Kaedah __eq__ ditakrifkan dalam kelas dan digunakan untuk membandingkan dua objek. Artikel ini juga membincangkan perbezaan antara operator == dan kaedah __eq__.
Atas ialah kandungan terperinci Program Python membezakan antara operator == string dan kaedah __eq__().. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!