Menu
CoddyTech

Penggunaan Dekorator

Pelajaran 5 dari 12 dalam kursus Dekorator Python di Coddy.

Dalam Python, decorator adalah fungsi yang menerima fungsi lain sebagai input dan memperluas perilaku fungsi input tanpa mengubah kodenya secara langsung. Decorator adalah cara yang ampuh untuk mengubah atau meningkatkan perilaku fungsi secara fleksibel dan dapat digunakan kembali.

Berikut contoh fungsi decorator sederhana:

def my_decorator(func):
    def wrapper():
        print("Before the function is called.")
        func()
        print("After the function is called.")
    return wrapper

Dalam contoh ini, fungsi my_decorator menerima fungsi lain, func, sebagai input dan mengembalikan fungsi baru bernama wrapper.

Fungsi wrapper menambahkan perilaku sebelum dan sesudah fungsi func dipanggil.

challenge icon

Tantangan

Mudah

Tulis fungsi decorator bernama debug yang menerima fungsi func sebagai input dan mengembalikan fungsi baru yang mencetak nama func dan nilai yang dikembalikan oleh func setiap kali fungsi itu dipanggil.

Untuk mendapatkan nama func, gunakan func.__name__.

Berikut contoh penggunaan decorator debug:
 

def hello():
    return "Hello"

debug_hello = debug(hello)
debug_hello()

Dalam contoh ini, kita menggunakan decorator debug untuk membungkus fungsi hello dan membuat fungsi baru bernama debug_hello. Saat kita memanggil debug_hello(), decorator akan mencetak:

Calling hello
hello returned: Hello

Kamu bisa menganggap semua fungsi yang diteruskan ke debug adalah fungsi tanpa argumen.

Coba sendiri

Semua pelajaran di Dekorator Python

Latihan sendiri: Compiler Python online