Rumah >pembangunan bahagian belakang >Tutorial Python >Penghias Python: Menambah Keajaiban pada Fungsi Anda, Satu Lapisan pada Satu Masa

Penghias Python: Menambah Keajaiban pada Fungsi Anda, Satu Lapisan pada Satu Masa

Patricia Arquette
Patricia Arquetteasal
2024-11-26 17:41:09810semak imbas

Python Decorators: Adding Magic to Your Functions, One Layer at a Time

Apa Sebenarnya Penghias?

Penghias dalam Python ialah alat berkuasa yang membolehkan anda membungkus fungsi tambahan di sekeliling fungsi sedia ada. Anggap ia sebagai meletakkan lapisan tambahan "hebat" pada fungsi, tanpa benar-benar menukar kod asal.


Cara Penghias Berfungsi

Penghias hanyalah fungsi yang mengambil fungsi lain sebagai input, menambah beberapa fungsi tambahan dan mengembalikan fungsi baharu.

Contoh:

def shout(func):
    def wrapper():
        return func().upper()
    return wrapper

@shout
def greet():
    return "hello"

print(greet())  # Outputs: HELLO

Di sini, penghias @shout mengubah greet() supaya ia mengembalikan outputnya dalam huruf besar.


Kes Penggunaan Biasa untuk Penghias

Penghias berguna untuk menambahkan fungsi potong silang pada fungsi, seperti:

  • Pengelogan: Mengelog secara automatik setiap kali fungsi dipanggil.
  • Pengesahan: Menyemak kebenaran sebelum menjalankan fungsi sensitif.
  • Masa: Mengukur tempoh masa sesuatu fungsi dijalankan.

Penghias Susun

Ya, anda boleh menyusun berbilang penghias untuk menggunakan berbilang lapisan fungsi pada satu fungsi.

@authenticate
@log
def process_data(data):
    # Function code

Ini menjalankan pengesahan dahulu, kemudian log, dan akhirnya memproses_data.


Kata Akhir: Penghias—Rakan Terbaik Fungsi Anda

Penghias membolehkan anda menambah kuasa pada kod anda tanpa kekacauan. Ia adalah jalan pintas anda untuk membersihkan, boleh digunakan semula dan fungsi yang dipertingkatkan.

? Ini untuk fungsi yang melakukan lebih banyak, tanpa kekacauan!"

Atas ialah kandungan terperinci Penghias Python: Menambah Keajaiban pada Fungsi Anda, Satu Lapisan pada Satu Masa. 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