Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta dan Menghias Fungsi Rantaian dalam Python?

Bagaimana untuk Mencipta dan Menghias Fungsi Rantaian dalam Python?

DDD
DDDasal
2024-12-24 19:47:15797semak imbas

How to Create and Chain Function Decorators in Python?

Cara Mencipta Penghias Fungsi dan Rangkaikannya Bersama

Pengenalan

Penghias dalam Python membenarkan anda untuk mengubah suai tingkah laku fungsi tanpa mengubah suai fungsi itu sendiri. Anda boleh menggunakan penghias untuk menambah fungsi, menyemak input/output dan melakukan operasi lain sebelum dan selepas fungsi dipanggil.

Mencipta Penghias

Untuk mencipta penghias , tentukan fungsi yang mengambil fungsi lain sebagai hujah. Fungsi ini harus mengembalikan fungsi baharu yang membungkus fungsi asal.

def make_bold(fn):
    # The new function the decorator returns
    def wrapper():
        # Insertion of some code before and after
        return "<b>" + fn() + "</b>"
    return wrapper

Penghias Rantai

Anda boleh penghias rantai untuk menggunakan berbilang pengubahsuaian pada fungsi. Hanya gunakan setiap penghias mengikut giliran, seperti yang ditunjukkan di bawah:

@make_bold
@make_italic
def say():
    return "hello"

Kod ini menggunakan make_bold decorator pada make_italic decorator, yang seterusnya digunakan pada fungsi say. Hasilnya ialah fungsi say mengembalikan rentetan yang tebal dan condong.

Contoh: Penghias Rantai untuk Memformat Teks

Andaikan anda mempunyai fungsi yang mengembalikan rentetan teks. Anda ingin menambah pemformatan tebal dan condong pada teks. Anda boleh menggunakan penghias yang ditakrifkan di atas untuk mencapai perkara ini:

@make_bold
@make_italic
def formatted_text(text):
    return text

print(formatted_text("Hello world"))

Output:

<b><i>Hello world</i></b>

Menyampaikan Argumen kepada Penghias

Anda boleh menyampaikan hujah kepada penghias dengan melampirkan hujah di dalamnya kurungan:

def a_decorator_passing_arguments(function_to_decorate):
    def a_wrapper_accepting_arguments(arg1, arg2):
        print("I got args! Look: {0}, {1}".format(arg1, arg2))
        function_to_decorate(arg1, arg2)
    return a_wrapper_accepting_arguments

@a_decorator_passing_arguments
def print_full_name(first_name, last_name):
    print("My name is {0} {1}".format(first_name, last_name))

print_full_name("Peter", "Venkman")

Output:

I got args! Look: Peter, Venkman
My name is Peter Venkman

Kesimpulan

Dengan memahami cara mencipta dan penghias rantai, anda boleh memanjangkan fungsi fungsi Python anda. Teknik berkuasa ini membolehkan anda mengubah suai tingkah laku, melakukan pemeriksaan dan meningkatkan kod anda dengan cara modular dan boleh digunakan semula.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta dan Menghias Fungsi Rantaian 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