MulaiMulai sekarang secara gratis

Beri tag pada fungsi Anda

Memberi tag berarti Anda menambahkan satu atau lebih string yang bertindak sebagai label. Misalnya, kita sering memberi tag pada email atau foto agar bisa dicari kembali nanti. Anda memutuskan untuk menulis sebuah dekorator yang memungkinkan Anda memberi tag pada fungsi-fungsi Anda dengan daftar tag apa pun. Anda dapat menggunakan tag ini untuk banyak hal:

  • Menambahkan informasi tentang siapa yang telah mengerjakan fungsi tersebut, sehingga pengguna dapat mencari siapa yang harus ditanya jika mengalami kendala saat menggunakannya.
  • Melabeli fungsi sebagai "eksperimental" agar pengguna tahu bahwa masukan dan keluaran mungkin berubah di masa mendatang.
  • Menandai fungsi apa pun yang Anda rencanakan untuk dihapus pada versi kode berikutnya.
  • Dst.

Latihan ini adalah bagian dari kursus

Menulis Function di Python

Lihat Kursus

Petunjuk latihan

  • Definisikan dekorator baru bernama decorator() untuk dikembalikan.
  • Pastikan fungsi yang didekorasi mempertahankan metadata-nya.
  • Panggil fungsi yang didekorasi dan kembalikan hasilnya.
  • Kembalikan dekorator yang baru.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

def tag(*tags):
  # Define a new decorator, named "decorator", to return
  def ____(____):
    # Ensure the decorated function keeps its metadata
    @____(____)
    def wrapper(*args, **kwargs):
      # Call the function being decorated and return the result
      return ____(____, ____)
    wrapper.tags = tags
    return wrapper
  # Return the new decorator
  return ____

@tag('test', 'this is a tag')
def foo():
  pass

print(foo.tags)
Edit dan Jalankan Kode