A dekorator adalah fungsi yang membungkus fungsi lain untuk menambahkan perilaku, tanpa mengubah kode asli. Diterapkan dengan sintaks @decorator di atas fungsi — cara yang rapi untuk menambahkan pertanyaan lintas potong seperti logging, timing, caching, atau kontrol akses.
Cara dekorator bekerja
():
():
()
result = func(*args, **kwargs)
()
result
wrapper
():
()
greet()
