Gelişmiş Python Geliştirme Kursu
Bölüm
>
Seviye
Dekoratörler
Dekoratör Kullanımı
Özel fonksiyonların çok çeşitli kullanımları vardır, ancak bazen mevcut bir fonksiyona ek işlevsellik eklemek isteyebilirsiniz. Bu, dekoratör olarak adlandırılır; çünkü mevcut bir fonksiyonu geliştirmek amacıyla tasarlanmış bir fonksiyondur.
Bu seviyede, fırınların yemek hazırlığına hazır hale gelebilmesi için önceden hazırlanması gerekmektedir. Fırınlara odun yükleme işlemi sırasında open() ve close() işlevlerini kullanmak için dekoratörlerden yararlanın.

Amaç
Fırınları odunla doldurun ve dekoratörleri kullanarak yemek pişirmeye hazır hale getirin.
Tuğla fırınların, akşam için yiyecek pişirebilmeniz adına hazırlanması gerekiyor. Fırınlar kapalı ve boş; ateş yakabilmek için biraz oduna ihtiyaçları var. Biraz odun kapın ve fırınlara yükleyin, böylece yemek pişirmeye başlayabilirsiniz. Bunu elle ya da özel bir fonksiyon kullanarak yapabilirsiniz, ancak süreç dekoratörler kullanılarak hızlandırılabilir.
Dekoratörler, özel bir fonksiyona eklendiğinde işlevselliğini talep üzerine genişletmek için ek özellikler kazandıran eklentilerdir; bunu yapmak için gereksiz şartlar ekleyerek karmaşıklığa başvurmanıza gerek yoktur.
# 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)
Haritanın alt kısmındaki depoya gidin ve dört (4) odun demetini toplayın. Altın X işaretine gidin ve fırınların ayarlanması gereken sıcaklıkları gösteren barın notunu kontrol etmek için read() fonksiyonunu kullanın. Sonrasında ihtiyaç duyacağınız bilgiler için açılan penceredeki bilgileri not edin.
Bunun ardından, fırının yanındaki açık X işaretlerine gidin ve odunu yerleştirmek için süslenmiş fonksiyonu kullanın, örneğin: prep_oven(). Odunu fırına yerleştirirken, renkli halılardaki koyu X işaretlerine gidin ve fırın sıcaklıklarını ayarlamak için question() asenkron fonksiyonunu kullanın.
Destekleyici fonksiyon önceden kurulacak, adı set_temperature() olacak ve soruya vereceğiniz cevap, sıcaklığın High ya da Medium olarak ayarlanıp ayarlanmayacağını belirleyecek. Daha önce okuduğunuz nota göre, her bir renkli halıya uygun sıcaklık ayarını yaparak, fonksiyonu yazarak ve soruya cevap vererek sıcaklığı ayarlayın. Asenkron fonksiyonlar kullanılırken await kullanmayı unutmayın, örneğin: await set_temperature()
Tüm dört (4) fırını hazırlayıp ayarladıktan sonra seviyeyi tamamlamış olacaksınız.