Memahamkan Penghias Ular Sawa — Satu Pembungkus Pada Satu Masa !
Hei Semua!
Saya harap anda sihat!
Pernahkah anda terjumpa penghias Python dan berfikir, "Oh tidak, bukan topik rumit lain!" Baiklah, biar saya beritahu anda, penghias tidak semenakutkan seperti yang dilihat. Malah, sebaik sahaja anda membiasakannya, mereka seperti menambah ceri di atas kemahiran Python anda.
Mari kita pecahkan, selangkah demi selangkah, dan bungkus (pun intended) kepala kita di sekitar penghias.
Penghias dalam Python adalah seperti alat ajaib yang membolehkan anda mengubah suai atau memanjangkan fungsi fungsi tanpa menyentuh kodnya. Ia seperti menambah penapis pada siaran Instagram anda — anda tidak menukar foto itu; anda hanya mempertingkatkannya.
Bayangkan anda mempunyai fungsi yang mencetak sesuatu. Bagaimana jika anda mahu ia log mesej sebelum dan selepas ia dijalankan? Daripada menulis semula fungsi, anda menggunakan penghias untuk menambah fungsi tersebut.
Ini contoh ringkas:
def my_decorator(func): def wrapper(): print("Starting the function...") func() print("Function has ended!") return wrapper @my_decorator def say_hello(): print("Hello, world!") say_hello()
Starting the function... Hello, world! Function has ended!
Mari kita melaluinya, baris demi baris:
1.** def my_decorator(func)**:Ini ialah fungsi penghias. Ia memerlukan fungsi lain (func) sebagai input.
2.def wrapper(): Di dalam penghias, kami mentakrifkan fungsi baharu dipanggil wrapper yang menambahkan beberapa gelagat tambahan.
func(): Ini memanggil fungsi asal (say_hello).
@my_decorator: Simbol @ ialah singkatan untuk menggunakan penghias pada fungsi. Ia sama seperti menulis:
kata_hello = penghias_ku(kata_hello)
Mari kita lihat senario dunia sebenar. Katakan anda ingin log setiap kali fungsi dipanggil. Anda boleh menulis penghias untuk itu:
def log(func): def wrapper(*args, **kwargs): print(f"Calling {func._name_}...") return func(*args, **kwargs) return wrapper @log def add(a, b): return a + b print(add(3, 5))
Ini menghasilkan:
Calling add... 8
Mudah, bukan? Daripada menambah penyata cetakan secara manual dalam setiap fungsi, anda hanya menggunakan satu penghias.
Begini cara penghias boleh bekerja untuk anda dalam senario pengekodan harian yang praktikal:
Pernah tertanya-tanya apa sebenarnya fungsi anda, atau data apa yang mereka kendalikan? Dengan penghias, anda boleh log secara automatik setiap kali fungsi dipanggil, input yang diterima dan perkara yang dikembalikan.
Contohnya: Anda sedang membina apl dan ingin menjejaki berapa kali ciri sedang digunakan. Seorang penghias boleh log setiap panggilan tanpa mengacaukan fungsi itu sendiri.
Berapa lama masa fungsi anda berjalan? Adakah ia memperlahankan program anda? Daripada menetapkan masa setiap satu secara manual, seorang penghias boleh mengukur masa pelaksanaan fungsi anda secara automatik.
Contohnya: Anda sedang mengoptimumkan skrip pemprosesan data dan ingin mencari kesesakan. Seorang penghias boleh memberitahu anda berapa lama setiap bahagian proses itu mengambil masa.
3. Mengurus Akses Pengguna
Jika anda membina apl atau tapak web, ada kalanya anda perlu mengehadkan ciri tertentu kepada pengguna tertentu — seperti pentadbir atau pengguna log masuk. Seorang penghias boleh mengendalikan cek ini dengan lancar.
**
Contohnya: **Jika pengguna cuba mengakses papan pemuka pentadbir, penghias boleh mengesahkan sama ada mereka mempunyai kebenaran yang betul sebelum membenarkan mereka masuk.
Sesetengah fungsi melaksanakan tugas yang sama merentas bahagian berlainan program anda — seperti menyimpan data ke pangkalan data atau menghantar pemberitahuan. Seorang penghias boleh memastikan tugasan tersebut dikendalikan secara seragam dan dengan pengulangan yang minimum.
Contohnya:Bayangkan anda menyimpan data ke berbilang jadual dalam pangkalan data. Seorang penghias boleh menambah ketekalan dan pengendalian ralat pada setiap operasi simpan.
Jika penghias masih berasa agak rumit, jangan risau! Seperti segala-galanya dalam Python, amalan menjadi sempurna. Mulakan dari kecil, cuba tulis beberapa penghias dan tidak lama lagi anda akan menggunakannya seperti seorang profesional.
Apakah pendapat anda tentang penghias? Beritahu saya dalam ulasan — atau lebih baik lagi, beritahu saya konsep Python lain yang anda mahu saya pecahkan!
Itu sahaja buat masa ini. Teruskan, cuba bungkus beberapa fungsi dan jadikan kod Python anda bersinar!
Selamat Mengekod!
Menghantar semua getaran baik dari sudut internet saya kepada anda!
Atas ialah kandungan terperinci Penghias Python: Sos Rahsia untuk Kod Lebih Bersih !. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!