Penghias dalam Python boleh sama ada fungsi atau kelas. Dalam bahagian sebelumnya, kami menggunakan penghias fungsi. Sekarang, kita akan belajar bagaimana untuk menentukan penghias kelas.
Kami akan menentukan kelas tersuai yang bertindak sebagai penghias. Apabila fungsi dihiasi/diubah suai dengan kelas, fungsi itu menjadi contoh kelas itu. Mari ketahui:
Seperti yang ditunjukkan di atas, kami telah mencipta penghias kelas yang ringkas. Untuk mana-mana kelas menjadi penghias, ia perlu melaksanakan kaedah __call__(). Kaedah __call__() berfungsi sama seperti fungsi pembungkus dalam penghias fungsi.
Sekarang mari kita gunakan kelas ini untuk menghiasi fungsi:
Output menjalankan program adalah seperti berikut:
Untuk penghias kelas menggunakan parameter dengan *args dan **kwargs, kita perlu menggunakan parameter ini untuk melaksanakan __call__ () kaedah, dan Hantarkannya kepada fungsi yang diubah suai. Kaedah perwakilan umum adalah seperti berikut:
Dalam kod di atas, kaedah __call__() penghias kelas menerima parameter *args dan **kwargs. Dalam baris kod, kaedah panggilan menghantarnya ke fungsi yang dihias: self.func(*args,**kwargs).
Sekarang kita menggunakan penghias kelas ini untuk menghiasi fungsi:
Fungsi Hiasan Hiasan Kelas
Hasil keluaran menjalankan program ialah serupa dengan yang berikut :
Hello Solo Cui
Ingat bahawa dalam fungsi pembalut penghias fungsi, kita boleh gunakan kembali Kata kunci mengembalikan fungsi yang dihias. Kami akan melakukan perkara yang sama di sini, tetapi dalam kaedah __call__.
Penghias kelas yang mengembalikan hasil
Hasil keluaran menjalankan program adalah seperti berikut:
TRACY CUI
Seperti yang ditunjukkan di atas, kami mengembalikan fungsi yang diubah suai dalam kaedah __call__:
return self.func(*args,**args)
Setakat ini, tentang Python Ini melengkapkan pengenalan penghias.
Atas ialah kandungan terperinci Pengaturcaraan Python: Bagaimana untuk melaksanakan penghias kelas dan aplikasi? Perkara utama untuk difahami. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!