Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menentukan Perbandingan Kesamaan untuk Contoh Objek dalam Python?

Bagaimana untuk Menentukan Perbandingan Kesamaan untuk Contoh Objek dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 20:49:29790semak imbas

How to Define Equality Comparison for Object Instances in Python?

Cara Membandingkan Contoh Objek untuk Kesamaan Berdasarkan Atribut

Python secara asalnya membandingkan contoh objek melalui rujukan, bermakna walaupun dua objek mempunyai persamaan nilai atribut, mereka akan dianggap tidak sama rata. Tingkah laku ini boleh menjadi masalah apabila anda perlu melakukan semakan kesaksamaan berdasarkan atribut objek.

Satu penyelesaian kepada isu ini ialah melaksanakan kaedah __eq__ dalam kelas anda. Kaedah ini membolehkan anda mentakrifkan syarat di mana dua kejadian kelas anda dianggap sama.

Untuk melaksanakan __eq__, ikut langkah berikut:

  1. Tentukan fungsi dengan tandatangan berikut: def __eq__(self, other).
  2. Semak sama ada objek lain daripada kelas yang sama dengan diri sendiri.
  3. Jika yang lain daripada kelas yang berbeza, kembalikan NotImplemented.
  4. Bandingkan nilai atribut diri dan orang lain untuk menentukan kesaksamaan.

Sebagai contoh, berikut ialah pelaksanaan __eq__ untuk kelas MyClass:

<code class="python">class MyClass:
    def __init__(self, foo, bar):
        self.foo = foo
        self.bar = bar

    def __eq__(self, other):
        if not isinstance(other, MyClass):
            return NotImplemented

        return self.foo == other.foo and self.bar == other.bar</code>

Dengan pelaksanaan ini, contoh MyClass boleh dibandingkan untuk kesamaan berdasarkan atribut foo dan bar mereka:

<code class="python">x = MyClass('foo', 'bar')
y = MyClass('foo', 'bar')

print(x == y)  # True</code>

Perhatikan bahawa pelaksanaan __eq__ akan menjadikan kejadian kelas anda tidak boleh dicincang. Jika anda perlu menyimpan kejadian dalam set atau kamus, anda juga harus melaksanakan kaedah __hash__ untuk mentakrifkan fungsi cincang untuk objek anda.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Perbandingan Kesamaan untuk Contoh Objek dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Metrik untuk algoritma regresiArtikel seterusnya:Metrik untuk algoritma regresi