Menu
CoddyTech

Sintaks Python

Pelajaran 6 dari 12 dalam kursus Dekorator Python di Coddy.

Pada pelajaran sebelumnya, kita melihat cara membuat decorator fungsi. Namun, Python menyediakan cara yang jauh lebih elegan untuk mencapai fungsi ini dengan menggunakan simbol @.

Contohnya,

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

@my_decorator
def my_function():
	print("Inside my_function.")

Saat kita menjalankan my_function(), kita akan melihat output seperti ini:

Before function is called.
Inside my_function.
After function is called.

Ini menunjukkan bahwa fungsi decorator my_decorator dapat mengubah perilaku my_function dengan menambahkan kode tambahan sebelum dan sesudah fungsi tersebut dipanggil.

challenge icon

Tantangan

Mudah

Kamu diberi kode untuk fungsi add.

Tugasmu adalah menulis dekorator fungsi bernama debug, seperti di pelajaran sebelumnya, tetapi dengan beberapa tambahan:

  • Terapkan dekorator fungsi debug ke add menggunakan simbol @.
  • Fungsi debug harus mendukung argumen fungsi.

Untuk mendukung fungsi dengan argumen dalam dekorator,

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

Contoh:

Untuk pemanggilan fungsi add(2, 3), yang harus dicetak adalah,

Calling add with arguments (2, 3)
add returned: 5

Coba sendiri

# Tulis kodemu di sini


def add(a, b):
    return a + b

Semua pelajaran di Dekorator Python

Latihan sendiri: Compiler Python online