Rumah >pembangunan bahagian belakang >Tutorial Python >Gunakan fungsi __ne__() Python untuk menentukan perbandingan dua objek yang tidak sama rata

Gunakan fungsi __ne__() Python untuk menentukan perbandingan dua objek yang tidak sama rata

WBOY
WBOYasal
2023-08-21 23:49:041293semak imbas

Gunakan fungsi __ne__() Python untuk menentukan perbandingan dua objek yang tidak sama rata

Tajuk: Gunakan fungsi __ne__() Python untuk mentakrifkan perbandingan tidak sama bagi dua objek

Dalam Python, kita boleh menggunakan fungsi perbandingan khas untuk menentukan operasi perbandingan tidak sama antara dua objek. Salah satu fungsi yang biasa digunakan ialah __ne__(), yang digunakan untuk melaksanakan perbandingan ketaksamaan antara objek.

__ne__() ialah kaedah ajaib (juga dipanggil kaedah khas atau kaedah garis bawah berganda) dalam Python yang digunakan untuk mentakrifkan kelakuan perbandingan ketidaksamaan objek. Apabila kita menggunakan operator ketaksamaan (!=) untuk membandingkan dua objek, Python secara automatik akan memanggil kaedah ini untuk menentukan sama ada ia tidak sama. Dengan melaksanakan kaedah __ne__() dalam kelas, kita boleh menyesuaikan peraturan untuk perbandingan tidak sama dua objek.

Mari kita lihat contoh yang menunjukkan cara menggunakan fungsi __ne__() untuk mentakrifkan perbandingan tidak sama bagi dua objek tersuai:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __ne__(self, other):
        if isinstance(other, Person):
            return self.age != other.age
        return NotImplemented

# 创建两个Person对象
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

# 使用不等于运算符比较两个Person对象
if person1 != person2:
    print("person1和person2的年龄不相等")
else:
    print("person1和person2的年龄相等")

Jalankan kod di atas, hasil keluarannya ialah: "Umur orang1 dan orang2 tidak sama ."

Dalam contoh di atas, kami menentukan kelas Orang dan melaksanakan kaedah __ne__() dalam kelas. Kaedah ini terlebih dahulu menentukan sama ada parameter masuk ialah tika kelas Orang (iaitu, objek lain juga tika kelas Orang Jika ya, bandingkan atribut umur kedua-dua objek untuk melihat sama ada ia sama. Jika ia tidak sama, kembalikan Benar, menunjukkan bahawa kedua-dua objek tidak sama, sebaliknya, kembalikan Salah, menunjukkan bahawa kedua-dua objek adalah sama. Jika hujah yang diluluskan bukan contoh kelas Orang, kami mengembalikan NotImplemented, yang memberitahu Python bahawa jenis perbandingan ini tidak disokong.

Dengan menyesuaikan kaedah __ne__(), kita boleh menentukan gelagat perbandingan yang tidak sama rata antara objek mengikut keperluan kita sendiri. Sebagai contoh, kita boleh menentukan sama ada objek tidak sama berdasarkan atribut tertentu objek, atau kita boleh mereka bentuk logik perbandingan yang lebih kompleks.

Perlu diambil perhatian bahawa apabila kita mentakrifkan kaedah __ne__(), Python juga akan secara automatik memanggil kaedah __eq__() untuk menentukan operasi perbandingan yang sama. Jika kita hanya mentakrifkan kaedah __ne__() tetapi bukan kaedah __eq__(), Python akan menggunakan peraturan perbandingan lalai, iaitu membandingkan sama ada alamat memori kedua-dua objek adalah sama.

Ringkasan:

Artikel ini memperkenalkan cara menggunakan fungsi __ne__() Python untuk menentukan perbandingan dua objek yang tidak sama rata. Dengan melaksanakan kaedah khas ini, kita boleh menentukan peraturan untuk perbandingan yang tidak sama rata antara objek mengikut keperluan kita sendiri. Kaedah __ne__() ialah sejenis kaedah ajaib dalam Python Bersama-sama dengan kaedah __eq__(), ia membentuk operasi perbandingan kesamaan dan ketidaksamaan objek Python. Dengan menggunakan kaedah sihir ini secara fleksibel, kita boleh mengawal tingkah laku perbandingan antara objek dengan lebih baik, menjadikan kod lebih mudah dibaca dan fleksibel.

Atas ialah kandungan terperinci Gunakan fungsi __ne__() Python untuk menentukan perbandingan dua objek yang tidak sama rata. 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