Gunakan dekorator Python

Jan 19 2023
Dekorator adalah alat canggih yang dapat digunakan untuk menambahkan fungsionalitas ke fungsi dan kelas yang ada tanpa mengubah kodenya. Mereka dapat digunakan untuk tugas-tugas seperti logging, caching, dan validasi, dan dapat membantu menjaga kode Anda tetap teratur dan terpelihara.

Dekorator adalah alat canggih yang dapat digunakan untuk menambahkan fungsionalitas ke fungsi dan kelas yang ada tanpa mengubah kodenya. Mereka dapat digunakan untuk tugas-tugas seperti logging, caching, dan validasi, dan dapat membantu menjaga kode Anda tetap teratur dan terpelihara.

Jadi.. apa itu dekorator?

Dekorator adalah tipe khusus dari fungsi yang menggunakan fungsi lain sebagai argumennya dan mengembalikan fungsi baru. Fungsi baru biasanya merupakan versi modifikasi dari fungsi asli dan sering digunakan untuk menambah fungsionalitas tambahan.

Bagaimana cara menggunakan adalah?

Dekorator diterapkan pada fungsi atau kelas dengan menempatkan simbol “@” diikuti dengan nama fungsi dekorator sebelum definisi fungsi atau kelas.

Berikut adalah contoh dekorator sederhana yang menambahkan fungsionalitas logging ke suatu fungsi:

def log_decorator(func):
    def wrapper(*args, **kwargs):
        print("Calling function:", func.__name__)
        result = func(*args, **kwargs)
        print("Function returned:", result)
        return result
    return wrapper

@log_decorator
def my_function(x, y):
    return x + y

my_function(1, 2)

Output dari kode ini adalah:

Calling function: my_function
Function returned: 3

Dekorator dosis bisa mendapatkan nilai?

Ya! Anda juga dapat memberikan argumen kepada dekorator dengan sangat mudah

def repeat(num):
    def repeat_decorator(func):
        def wrapper(*args, **kwargs):
            for i in range(num):
                result = func(*args, **kwargs)
            return result
        return wrapper
    return repeat_decorator

@repeat(num=3)
def my_function(x):
    return x * x

print(my_function(3))

Ingat?

dekorator adalah tipe khusus dari fungsi yang menggunakan fungsi lain sebagai argumen dan mengembalikan fungsi baru, biasanya versi modifikasi dari fungsi asli, yang digunakan untuk menambah fungsionalitas. Mereka diterapkan ke fungsi atau kelas dengan menempatkan simbol "@" diikuti dengan nama fungsi dekorator sebelum definisi fungsi atau kelas. Mereka juga dapat mengambil argumen untuk lebih menyesuaikan perilaku dekorator.

Semoga sukses Shilo