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!