Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Menggunakan Penghias dengan Parameter dalam Python?

Bagaimanakah Saya Menggunakan Penghias dengan Parameter dalam Python?

DDD
DDDasal
2024-12-23 19:52:18353semak imbas

How Do I Use Decorators with Parameters in Python?

Penghias dengan Parameter: Sintaks Berbeza

Penghias menyediakan mekanisme yang berkuasa untuk melanjutkan kefungsian fungsi dalam Python. Walau bagaimanapun, penghias dengan parameter memerlukan sintaks yang berbeza sedikit daripada penghias tradisional.

Sintaks untuk penghias dengan hujah melibatkan struktur fungsi dua lapisan:

  1. Kilang Penghias: Lapisan pertama, dipanggil kilang penghias, mengambil parameter dan mengembalikan penghias sebenar fungsi.
  2. Fungsi Penghias: Lapisan dalam, atau fungsi penghias, mengambil fungsi sasaran dan membungkusnya dengan fungsi tambahan.

Untuk menggambarkan ini, mari kita pertimbangkan contoh:

def execute_complete_reservation(test_case, insurance_mode):
    def inner_function(self, *args, **kwargs):
        # Additional functionality
        if insurance_mode:
            # Perform insurance actions
        else:
            # Perform non-insurance actions

        # Execute the target function
        test_case(self, *args, **kwargs)
    return inner_function

Dalam contoh ini, execute_complete_reservation ialah kilang penghias yang mengembalikan fungsi penghias inner_function. Fungsi penghias mengambil test_case fungsi sasaran dan membungkusnya dengan fungsi tambahan yang berkaitan dengan pengendalian insurans.

Untuk menggunakan penghias ini, kami akan menggunakan sintaks yang serupa dengan:

@execute_complete_reservation(True)
def test_booking_gta_object(self):
    # Booking functionality

Sintaks ini lulus nilai Benar kepada kilang penghias, yang kemudian mencipta fungsi penghias yang memintas dan meningkatkan fungsi test_booking_gta_object.

Dengan memahami sintaks dan mekanisme di sebalik penghias dengan parameter, pembangun boleh meluaskan keupayaan fungsi Python dengan berkesan dan membina kod yang lebih mantap dan fleksibel.

Atas ialah kandungan terperinci Bagaimanakah Saya Menggunakan Penghias dengan Parameter 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