Decorator digunakan untuk memodifikasi sebuah fungsi menggunakan fungsi lain. Hal ini berguna ketika kita ingin menambah fungsionalitas pada sebuah fungsi tanpa memodifikasnya secara langsung.
Berikut contohnya :
def dekor(fungsi):
def wrap():
print("==========")
fungsi()
print("==========")
return wrap
def fungsi_print():
print("Hello world!")
dekorasi = dekor(fungsi_print)
dekorasi()
Jadi fungsi fungsi_print akan didekorasi menggunakan fungsi dekor. Dimana fungsi_print yang menampilakan tulisan “Hello world!” akan memiliki dekorasi berupa garis-garis yang ditambahkan menggunakan fungsi dekor. Di dalam fungsi dekor terdapat nested function yaitu wrap yang digunakan untuk hasil return dari fungsi dekor. Variabel dekorasi merupakan versi dekorasi dari fungsi_print.
==========
Hello world!
==========
Berikut contoh dimana kita tidak perlu mendefinisikan variabel dekorasi seperti sebelumnya.
def dekor(fungsi):
def wrap():
print("==========")
fungsi()
print("==========")
retur wrap
@dekor
def fungsi_print():
print("Hello world!")
fungsi_print()
LANJUTKAN BACA MATERI LENGKAP