Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat
Dekorator
Menggunakan Dekorator
Fungsi khusus memiliki beragam kegunaan, namun terkadang Anda mungkin ingin menambahkan fungsionalitas tambahan ke fungsi yang sudah ada. Ini disebut decorator, yaitu fungsi yang dirancang untuk memperluas fungsi yang sudah ada, sesuai dengan namanya.
Untuk level ini, oven perlu dipersiapkan agar siap untuk persiapan makanan. Gunakan decorator untuk open() dan close() di antara proses memasukkan kayu bakar ke dalam oven.

Tujuan
Isi oven dengan kayu bakar dan atur oven agar bisa dipersiapkan untuk memasak dengan menggunakan dekorator.
Oven batu perlu dipersiapkan sehingga kamu dapat memanggang makanan untuk nanti malam. Oven-oven tersebut dalam keadaan mati dan kosong serta memerlukan kayu bakar agar bisa dinyalakan. Ambil beberapa kayu bakar dan muat ke dalam oven supaya kamu bisa mulai memasak. Meskipun kamu bisa melakukan ini secara manual atau dengan menggunakan fungsi kustom, prosesnya dapat dipercepat dengan menggunakan dekorator.
Dekorator adalah tambahan yang dapat diterapkan pada fungsi kustom untuk memperluas fungsionalitasnya sesuai dengan permintaan tanpa perlu mempersulitnya dengan kondisi.
# Decorator, adds extra functionality to another function
def load_wood(func):
def load():
player.open()
func()
player.close()
return load
# Custom function that can be decorated
def add_wood():
player.place("firewood")
player.speak("Three logs placed in oven")
# Decorate the custom function
prep_oven = load_wood(add_wood)
Pergilah ke ruang penyimpanan di bagian bawah peta dan kumpulkan keempat (4) bundel kayu. Pergilah ke tanda X emas dan gunakan fungsi read() untuk memeriksa memo pada bar yang menampilkan suhu yang seharusnya diatur pada oven. Catat informasi yang muncul di pop up karena kamu akan membutuhkannya nanti.
Lanjutkan dengan berjalan ke tanda X terang di dekat oven dan gunakan fungsi yang telah didekorasi untuk menaruh kayu bakar, seperti ini: prep_oven(). Saat kamu menaruh kayu bakar ke dalam oven, berjalanlah ke tanda X gelap pada karpet berwarna dan gunakan fungsi async question() untuk mengatur suhu oven.
Fungsi pendukung akan disiapkan sebelumnya, bernama set_temperature(), dan jawabanmu terhadap pertanyaan tersebut akan menentukan apakah suhu akan diatur ke High atau ke Medium. Atur suhu dengan menulis fungsi dan menjawab pertanyaan menggunakan memo yang kamu baca sebelumnya, dengan setiap suhu yang diatur sesuai dengan karpet berwarna yang bersangkutan. Ingat untuk menggunakan await saat menggunakan fungsi async, seperti ini: await set_temperature()
Setelah kamu menyiapkan dan mengatur keempat (4) oven, kamu telah menyelesaikan level.