Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan fungsi penghias dalam Python

Cara menggunakan fungsi penghias dalam Python

PHPz
PHPzasal
2023-10-19 09:10:481268semak imbas

Cara menggunakan fungsi penghias dalam Python

Cara menggunakan fungsi penghias dalam Python

Dalam pengaturcaraan Python, penghias ialah alat yang sangat berguna. Ia membolehkan kami memanjangkan fungsi dengan fungsi tambahan tanpa mengubah suai kod fungsi asal. Fungsi penghias secara automatik boleh melakukan beberapa operasi sebelum dan selepas pelaksanaan fungsi, seperti pengelogan, pemasaan, pengesahan kebenaran, dsb. Artikel ini akan memperkenalkan konsep asas fungsi penghias dan menyediakan beberapa contoh kod konkrit.

1. Definisi fungsi penghias

Fungsi penghias ialah fungsi yang menerima fungsi sebagai parameter dan mengembalikan fungsi baharu. Ia boleh digunakan pada fungsi menggunakan sintaks @. Berikut ialah contoh definisi fungsi penghias mudah:

def decorator_function(original_function):
    def wrapper_function(*args, **kwargs):
        # 在函数执行前的操作
        print("Before executing the function")
        # 执行原始函数
        result = original_function(*args, **kwargs)
        # 在函数执行后的操作
        print("After executing the function")
        return result
    return wrapper_function

2. Aplikasi fungsi penghias

Fungsi penghias boleh melakukan beberapa operasi tambahan sebelum dan selepas pelaksanaan fungsi. Berikut ialah contoh menggunakan fungsi penghias untuk melaksanakan fungsi pemasaan:

import time

def timer_decorator(original_function):
    def wrapper_function(*args, **kwargs):
        start_time = time.time()
        result = original_function(*args, **kwargs)
        end_time = time.time()
        execution_time = end_time - start_time
        print(f"Execution time: {execution_time} seconds")
        return result
    return wrapper_function

@timer_decorator
def my_function():
    time.sleep(1)
    print("Function executed")

my_function()

Dalam contoh di atas, fungsi penghias pemasa_penghias digunakan pada fungsi my_function. Apabila my_function dipanggil, penghias merekodkan masa mula sebelum fungsi dilaksanakan, mengira masa tamat selepas fungsi dilaksanakan dan mengira masa pelaksanaan fungsi.

3. Parameter fungsi penghias

Fungsi penghias boleh menerima parameter untuk menggunakan penghias yang berbeza untuk fungsi yang berbeza. Berikut ialah contoh fungsi penghias dengan parameter:

def prefix_decorator(prefix):
    def decorator_function(original_function):
        def wrapper_function(*args, **kwargs):
            print(f"{prefix}: Before executing the function")
            result = original_function(*args, **kwargs)
            print(f"{prefix}: After executing the function")
            return result
        return wrapper_function
    return decorator_function

@prefix_decorator("LOG")
def my_function():
    print("Function executed")

my_function()

Dalam contoh di atas, fungsi prefix_decorator mengembalikan fungsi penghias yang mencetak maklumat log dengan awalan sebelum dan selepas fungsi itu dilaksanakan.

4. Aplikasi berbilang penghias

Pelbagai fungsi penghias boleh digunakan pada fungsi yang sama untuk membentuk kesan susunan penghias. Berikut ialah contoh penggunaan berbilang penghias:

def decorator1(original_function):
    def wrapper_function(*args, **kwargs):
        print("Decorator 1: Before executing the function")
        result = original_function(*args, **kwargs)
        print("Decorator 1: After executing the function")
        return result
    return wrapper_function

def decorator2(original_function):
    def wrapper_function(*args, **kwargs):
        print("Decorator 2: Before executing the function")
        result = original_function(*args, **kwargs)
        print("Decorator 2: After executing the function")
        return result
    return wrapper_function

@decorator1
@decorator2
def my_function():
    print("Function executed")

my_function()

Dalam contoh di atas, fungsi penghias1 dan penghias2 digunakan pada fungsi my_function dalam urutan. Apabila my_function dipanggil, penghias 2 akan dilaksanakan selepas penghias 1.

Ringkasan:

Fungsi penghias ialah alat yang sangat berguna dalam Python, yang boleh memanjangkan fungsi dengan fungsi tambahan tanpa mengubah suai kod fungsi asal. Dengan menyediakan beberapa contoh kod konkrit, artikel ini berharap dapat membantu pembaca memahami konsep asas fungsi penghias dan cara menggunakannya. Menggunakan fungsi penghias mengurangkan pertindihan kod dan menjadikan kod lebih modular dan lebih mudah untuk diselenggara.

Atas ialah kandungan terperinci Cara menggunakan fungsi penghias 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