MulaiMulai sekarang secara gratis

Mendefinisikan sebuah dekorator

Rekan Anda sedang mengerjakan sebuah dekorator yang mencetak pesan "before" sebelum fungsi yang didekorasi dipanggil dan mencetak pesan "after" setelah fungsi tersebut dipanggil. Mereka kesulitan mengingat cara kerja pembungkusan fungsi yang didekorasi. Bantu mereka dengan melengkapi dekorator print_before_and_after().

Latihan ini adalah bagian dari kursus

Menulis Function di Python

Lihat Kursus

Petunjuk latihan

  • Panggil fungsi yang didekorasi dan teruskan argumen posisional *args.
  • Kembalikan fungsi baru yang sudah didekorasi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

def print_before_and_after(func):
  def wrapper(*args):
    print('Before {}'.format(func.__name__))
    # Call the function being decorated with *args
    ____(*args)
    print('After {}'.format(func.__name__))
  # Return the nested function
  return ____

@print_before_and_after
def multiply(a, b):
  print(a * b)

multiply(5, 10)
Edit dan Jalankan Kode