Rumah >pembangunan bahagian belakang >Tutorial Python >Penghias & Harta Kelas dalam Python

Penghias & Harta Kelas dalam Python

Barbara Streisand
Barbara Streisandasal
2024-12-24 15:49:12670semak imbas

Dalam siaran ini saya akan membincangkan penggunaan biasa penghias fungsi, khususnya penghias harta kelas serta perbezaan antara menggunakan penghias atau kaedah kelas secara langsung.

Penggunaan

Decorators & Class Property in PythonNampak 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?

Decorators & Class Property in Python

Bagaimanakah penghias berfungsi?

Berikut ialah contoh fungsi penghias standard.
Decorators & Class Property in Python
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.

Memahami kaedah harta

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.

Penghias @property

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.

Faedah Penghias

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.

Kredit:

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!

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