Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan fungsi __contains__() Python untuk menentukan operasi pembendungan objek

Gunakan fungsi __contains__() Python untuk menentukan operasi pembendungan objek

WBOY
WBOYasal
2023-08-22 16:23:081469semak imbas

Gunakan fungsi __contains__() Python untuk menentukan operasi pembendungan objek

Gunakan fungsi __contains__() Python untuk mentakrifkan operasi pembendungan objek

Python ialah bahasa pengaturcaraan ringkas dan berkuasa yang menyediakan banyak ciri berkuasa untuk mengendalikan pelbagai jenis data. Salah satunya adalah untuk melaksanakan operasi pembendungan objek dengan mentakrifkan fungsi __contains__(). Artikel ini akan memperkenalkan cara menggunakan fungsi __contains__() untuk mentakrifkan operasi pembendungan objek, dan memberikan beberapa kod sampel. Fungsi

__contains__() ialah salah satu fungsi terbina dalam Python, digunakan untuk mentakrifkan gelagat pengendali kemasukan "dalam". Apabila menggunakan "in" untuk menyemak sama ada objek mengandungi elemen, Python akan mencari fungsi __contains__() yang ditakrifkan dalam objek dan memanggil fungsi ini untuk melaksanakan operasi pembendungan. Berikut ialah sintaks asas fungsi __contains__():

def __contains__(self, item):
    # 包含操作的逻辑代码
    pass

Antaranya, diri merujuk kepada objek itu sendiri, dan item ialah elemen yang perlu dinilai sama ada ia disertakan. Kita boleh menulis kod logik dalam fungsi __contains__() untuk menentukan sama ada objek itu mengandungi elemen yang dinyatakan, kembalikan Benar, sebaliknya, kembalikan Salah.

Seterusnya, kami menggunakan kod sampel untuk menunjukkan cara menggunakan fungsi __contains__() untuk mentakrifkan operasi pembendungan objek. Katakan terdapat objek bernama Person, yang mengandungi senarai bernama rakan, yang digunakan untuk menyimpan nama rakan. Kami mahu melaksanakan operasi pembendungan dengan menentukan sama ada seseorang itu adalah rakan objek. Kod sampel adalah seperti berikut:

class Person:
    def __init__(self, name, friends):
        self.name = name
        self.friends = friends
    
    def __contains__(self, name):
        return name in self.friends

p1 = Person("Alice", ["Bob", "Charlie", "David"])
print("Bob" in p1)  # 输出True
print("Emily" in p1)  # 输出False

Dalam kod sampel di atas, kami mentakrifkan kelas bernama Person dan memulakan nama objek dan senarai rakan melalui fungsi __init__(). Kemudian, kami menggunakan operator "dalam" dalam fungsi __contains__() untuk menentukan sama ada nama yang ditentukan berada dalam senarai rakan. Jika ya, mengembalikan Benar; sebaliknya mengembalikan Salah.

Seterusnya, kami mencipta objek Orang bernama p1, yang senarai rakannya mengandungi "Bob", "Charlie" dan "David". Kemudian, kami menggunakan pengendali "dalam" untuk menentukan sama ada "Bob" dan "Emily" adalah rakan kepada objek p1. Memandangkan "Bob" berada dalam senarai rakan, output penghakiman pertama adalah Benar dan "Emily" tiada dalam senarai rakan, jadi output penghakiman kedua adalah Salah.

Menggunakan fungsi __contains__() untuk mentakrifkan operasi pembendungan objek boleh melaksanakan logik tersuai dengan mudah. Kita boleh melaksanakan syarat penghakiman yang berbeza dalam fungsi __contains__() mengikut keperluan khusus objek, untuk menilai secara fleksibel sama ada objek itu mengandungi elemen tertentu.

Ringkasnya, artikel ini memperkenalkan penggunaan fungsi __contains__() Python untuk mentakrifkan operasi pembendungan objek. Melalui demonstrasi kod sampel, kita dapat melihat bahawa menggunakan fungsi __contains__() boleh dengan mudah dan fleksibel melaksanakan penghakiman pembendungan objek. Saya berharap pembaca dapat memperoleh pemahaman yang lebih mendalam dan aplikasi fungsi __contains__() dalam Python melalui pengenalan artikel ini.

Atas ialah kandungan terperinci Gunakan fungsi __contains__() Python untuk menentukan operasi pembendungan objek. 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