Dalam artikel ini, kita akan mempelajari kegunaan biasa penghias Python
Penghias Python ialah sekeping kod yang membenarkan penambahan atau kemas kini pada fungsi sedia ada tanpa perlu menukar definisi fungsi asas. Apabila program berjalan, ia cuba mengedit bahagian lain dari dirinya sendiri, yang dipanggil metaprogramming.
Decorator ialah jenis fungsi yang mengambil fungsi dan mengembalikan fungsi lain, atau mengambil kelas dan mengembalikan kelas lain. Ia boleh menjadi apa-apa yang boleh dipanggil (fungsi, kelas, kaedah, dll.) dan boleh mengembalikan apa-apa sahaja;
Penghias python mudah digunakan.
Penghias menerima objek boleh panggil, yang melaksanakan kaedah khas __call()__, dipanggil objek boleh panggil, yang menambah beberapa fungsi dan mengembalikan objek boleh panggil.
Terjemahan bahasa Cina bagi@somedecorator def exmple_decorators(): print("Hello tutorialspoint python decorators")
Penghias menulis pula memerlukan set kemahiran yang berbeza sama sekali. Ini bukan perkara mudah; anda mesti memahami sepenuhnya perkara berikut -
Memerlukan masa yang lama untuk menguasai dan menyempurnakan semua ini. Dan anda sudah mempunyai senarai panjang perkara untuk dipelajari.
Adakah ini berbaloi dengan masa anda?
Jawapannya jelas Ya. Apakah kelebihan utama penghias tulisan? Adakah ia membolehkan anda cemerlang dengan mudah dalam perkembangan harian anda?
Jom tengok!
Kami selalunya perlu mengukur secara khusus perkara yang berlaku dan mengumpul metrik yang mengukur operasi yang berbeza, terutamanya untuk aplikasi yang besar. Penghias boleh menyelesaikan keperluan ini dengan cara yang sangat mudah dibaca dan mudah dengan merangkum peristiwa penting ini dalam fungsi atau kaedah mereka sendiri.
Sistem jenis Python ditaip dengan kuat tetapi dinamik. Walaupun ia mempunyai banyak kelebihan, ia juga bermakna bahawa beberapa masalah mungkin dikesan pada masa penyusunan oleh bahasa yang ditaip secara statik seperti Java.
Selain itu, anda mungkin mahu melaksanakan semakan tersuai yang lebih kompleks pada data yang masuk dan keluar dari sistem. Penghias membantu anda mengurus semua ini dan menerapkannya pada berbilang fungsi pada masa yang sama.
Sebaik sahaja anda belajar menulis penghias, anda akan mendapat manfaat daripada sintaks ringkas mereka, yang membolehkan anda menambah semantik pada bahasa dengan mudah. Ini adalah sedekat yang anda boleh dapatkan untuk dapat melanjutkan sintaks Python.
Banyak rangka kerja sumber terbuka yang terkenal menggunakannya. Rangka kerja aplikasi web Flask menggunakan ini untuk menghalakan URL ke fungsi yang mengendalikan permintaan HTTP.
Dengan sintaks fungsi yang elegan, sokongan pengaturcaraan berfungsi dan sistem objek yang lengkap, Python menyediakan beberapa alat yang sangat berkuasa untuk merangkum kod ke dalam bentuk yang boleh digunakan semula dengan mudah. Walau bagaimanapun, alat ini sahaja tidak dapat menangkap corak penggunaan semula kod tertentu.
Pertimbangkan untuk menggunakan Flakey API. Anda menghantar pertanyaan melalui HTTP ke objek yang memahami JSON dan 99.9% masa ia berfungsi. Walau bagaimanapun, peratusan kecil daripada semua permintaan akan menyebabkan pelayan mengembalikan ralat dalaman, yang memerlukan anda mencuba semula permintaan tersebut. Dalam kes ini, anda perlu menambah beberapa logik cuba semula.
Terjemahan bahasa Cina bagi# Creating a decorator function def decoratorFunction(demofunction): def innerFunc(): print("Yup...It is a decorated function") demofunction() return innerFunc() # Creating a regular ordinary function def normalFunction(): print("Yup...It is a normal ordinary function") decoratedResult = decoratorFunction(normalFunction) decoratedResult
Apabila dilaksanakan, program di atas akan menjana output berikut -
Yup...It is a decorated function Yup...It is a normal ordinary function
decoratorFunction() ialah penghias daripada contoh sebelumnya. Ringkasnya, penghias ialah pembungkus yang membalut objek (tanpa mengubahnya) dan menambah fungsi baharu pada objek asal. Oleh kerana ini adalah teknik yang biasa digunakan, Python menyediakan ciri sintaksis (dipanggil penghias) yang menjadikannya lebih mudah untuk digunakan. Pertimbangkan yang berikut sebagai contoh −
Fungsi berikut:
@decorated_func def ordinary_function(): print("This is ordinary function")
sama dengan
def ordinary_function(): print("This is ordinary function") decorated = decorated_func(ordinary_func)
Menulis penghias adalah sukar pada mulanya. Ia juga bukan sains roket, tetapi memerlukan banyak usaha untuk mempelajari dan memahami butiran yang tidak pernah diganggu oleh ramai pembangun. Ini berfungsi untuk kelebihan anda. Jika anda menjadi orang dalam pasukan yang belajar menulis penghias dengan betul dan menulis penghias yang menjawab soalan dunia sebenar, pembangun lain akan menggunakan penghias anda. Setelah kerja keras menulis penghias selesai, menggunakannya adalah sangat mudah. Ini boleh meningkatkan kesan positif kod yang anda bangunkan. Ia juga mungkin menjadikan anda seorang tuan.
Penghias adalah ciri luar biasa yang boleh digunakan untuk pelbagai tujuan. Ia bukan sekadar "fungsi atau kelas yang mengambil fungsi atau kelas dan mengembalikan fungsi atau kelas".
Tidak kira kaedah apa yang anda gunakan untuk belajar membina penghias, anda mungkin akan teruja tentang perkara yang boleh anda capai menggunakan mereka dan bagaimana ia akan (tidak bergurau) mengubah cara anda menulis kod Python selama-lamanya!
Atas ialah kandungan terperinci Apakah kegunaan biasa penghias Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!