Rumah >pembangunan bahagian belakang >Tutorial Python >Penghias & Harta Kelas dalam Python
Dalam siaran ini saya akan membincangkan penggunaan biasa penghias fungsi, khususnya penghias harta kelas serta perbezaan antara menggunakan penghias atau kaedah kelas secara langsung.
Nampak familiar, bukan?
Penghias @propery yang ada di mana-mana terdapat di mana-mana, tetapi bagaimana sebenarnya ia berfungsi?
Apakah perbezaan antara menggunakan @property atau menggunakan kaedah kelas property() secara langsung?
Berikut ialah contoh fungsi penghias standard.
Di bawah tudung Python, fungsi yang memanggil penghias (iaitu fungsi luar) akan dibalut dengan kod tambahan dengan memanggil penghias dan menghantar fungsi luar sebagai parameter. Penghias akan mencipta fungsi berbalut dengan semua logik baharunya dan mengembalikannya sebagai nilai fungsi luar.
Kaedah sifat kelas ialah fungsi Python terbina dalam yang membolehkan kami mentakrifkan kaedah pengambil, penetap dan pemadam untuk atribut kelas dan mengikatnya dengan kaedah sihir lalai kelas.
def get_my_value(self): return self._my_value my_value = property(get_my_value)
difahami oleh pengkompil Python sebagai
def __get__(self,obj): return self.fget(obj)
Pada asasnya, kaedah property() mencipta objek yang bertindak sebagai proksi antara nama atribut dan data asas. Oleh itu, ia membolehkan kami menambah gelagat tersuai dan logik pengesahan yang tidak boleh dilakukan dengan kaedah sihir lalai.
Seperti yang kita lihat di atas, kaedah sifat membenarkan kami menulis ganti kaedah sihir lalai dan sejauh mana kefungsiannya. Kami juga telah menunjukkan cara penghias membungkus logik berfungsi dalam fungsi baharu. Apabila kaedah pengambil, penetap atau pemadam dipanggil dengan penghias @property, Python menterjemahkannya ke dalam panggilan ke kaedah property() secara dalaman dan mencipta objek harta yang membungkus kaedah kepada fungsi yang boleh menimpa kaedah sihir lalai.
Walaupun kami telah menunjukkan bahawa menggunakan kaedah @property decorator atau property() adalah setara, penghias menawarkan penggunaan yang lebih mudah dan membolehkan kod dalam kelas menjadi lebih mudah dibaca. Oleh itu, ia dianggap amalan terbaik dan konvensyen pengekodan dan penghias harus digunakan melainkan terdapat keperluan senario tertentu.
https://www.geeksforgeeks.org/python-property-decorator-property/
Penjana imej pengepala catatan blog
Pembuat coretan kod
Atas ialah kandungan terperinci Penghias & Harta Kelas dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!