קורס פיתוח מתקדם בפייתון
פרק
>
רמה
דקורטורים
שימוש בדקורטורים
פונקציות מותאמות אישית מציעות מגוון רחב של שימושים, אך לפעמים ייתכן שתרצה להוסיף פונקציונליות נוספת לפונקציה קיימת. זה נקרא דקורטור, זוהי פונקציה שנועדה לשדרג פונקציה קיימת, ומכאן השם.
ברמה זו יש להכין את התנורים כדי להכין אותם להכנת האוכל. השתמש בדקורטורים כדי open() ו־close() בין טעינת עצי מדורה לתוך התנורים.

מטרה
מלא את התנורים בעץ והגדר את התנורים כך שיוכלו להיות מוכנים לבישול על ידי שימוש בדקורטורים.
תנורי הלבנים צריכים להיות מוכנים כדי שתוכל לאפות אוכל לשעות המאוחרות בערב. התנורים כבויים וריקים ודורשים קצת עצים כדי שיודלקו. אסוף קצת עצים והעמס אותם בתנורים כדי שתוכל להתחיל לבשל. ניתן לעשות זאת ידנית או על ידי שימוש בפונקציה מותאמת אישית, אך התהליך יכול להתקצר על ידי שימוש בדקורטורים.
דקורטורים הם תוספות שניתן להוסיף לפונקציה מותאמת אישית כדי להרחיב את הפונקציונליות שלה לפי דרישה, מבלי לסבך אותה בתנאים.
# 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)
לך לחדר האחסון שבתחתית המפה ואסוף את ארבע (4) חבילות גזעי העץ. לך לסימן ה-X הזהוב והשתמש בפונקציה read() כדי לבדוק את התזכיר על השלט המציג את הטמפרטורות בהן יש להגדיר את התנורים. רשום את המידע המופיע בחלון הקופץ, כי תצטרך אותו מאוחר יותר.
לאחר מכן, לך לסימני ה-X הבהירים ליד התנור והשתמש בפונקציה המקושטת כדי להניח את העצים, כך: prep_oven(). בעת הכנסת העצים לתנור, לך לסימני ה-X הכהים שעל השטיחים הצבעוניים והשתמש בפונקציה האסינכרונית question() כדי להגדיר את הטמפרטורה של התנורים.
הפונקציה התומכת תוגדר מראש, בשם set_temperature(), והתשובה שלך לשאלה תקבע האם הטמפרטורה תוגדר כ-High או כ-Medium. הגדר את הטמפרטורה על ידי כתיבת הפונקציה ומתן התשובה לשאלה באמצעות התזכיר שקראת קודם, כאשר כל טמפרטורה מוגדרת בהתאם לשטיח הצבעוני המתאים. זכור להשתמש ב-await בעת שימוש בפונקציות אסינכרוניות, כך: await set_temperature()
ברגע שתכין ותגדיר את כל ארבע (4) התנורים, סיימת את השלב.