אני שונא דרדסים!

תגיות:

פותח את הפוסט הזה לשאלות שעולות לי עכשיו / יעלו בהמשך.
דבר ראשון הפעולה eat:
הצלחתי להבין שהפעולה תקבל רשימת מנות ושהוא יוכל מהן קודם כל בתנאי שדרדשף הכין אותן ובתנאי שנשאר מהמנה.
אני מניח שלפירושי להחליט אם למחוק את המנה כשהיא נגמרת או לתת לדרדשף את האופציה refill ושהוא יוכל להכין עוד חתיכות אם היא הסתיימה (והאם לפשט את האופציה ופשוט לתת לו להוסיף על המצב הקיים? זאת אומרת גם אם נשארו 0 מנות וגם אם לא אכלו בכלל מהמנה הוא יוכל להוסיף מנות)
והבנתי שדרדס יקבל רשימת מנות ויאכל את כולן, אך האם מדובר בכל המנה או רק חתיכה ממנה?

בנוגע להוצאה להורג של גרגמל, האם הוא מקבל פעולות כמו כל שאר הדרדסים בכפר או שבתור אסיר הוא מאבד את הזכויות שלו לישון ולאכול?

וחזרה לדרדשף, אני מניח שהדרך היעילה תהיה ליצור לו משתנה שנקרא מנות שיהיה רשימה של כל המנות שהכין אך בהתחשב בכך שיכול להיות יותר משף אחד בכפר ושזה לא חדר אוכל שיתופי (תקנו אותי אם אני טועה), האם להוסיף לפעולה eat מופע של דרדשף שהוא יאכל מהמנות שלו?

  1. דרדס אוכל חתיכה מכל מנה
  2. לגיטימי לעשות פונקציית ריפיל
  3. גרגמל - לא נדרש אבל אם בא לך תעשה לו.
  4. בנוגע להכנת המנות … זה לגמרי תלוי איך אתה מרכיב את הקוד. מאמין שיש כמה דרכים תבחר מה הכי עובד לך
3 לייקים

תודה רבה, עזרת לי המון, אני לקראת סיום התרגיל ונשאר לי רק לסיים את דרדסבא ואני נתקע עם הפעולה give order
קראתי את הפוסט הזה מס’ פעמים: ואם תהיו טובים אולי תצליחו לראות את הדרדסים
הבנתי שהכוונה להעביר פונקציה כפרמטר, אך לא הבנתי איך אני עושה את זה כמו בדוגמא שים נתן.
כשאני מנסה להעביר את השורה:

def give_order(self, smurf.function):

אני מקבל invalid syntax.
כשניסיתי להעביר את המופע של הדרדס ואת הפונקציה כשני משתנים נפרדים קיבלתי שהפונקצייה לא מוגדרת כי היא הרי חלק בתוך המחלקה של הדרדס.
אז איך אני מעביר פונקציה כפרמטר כשמדובר במחלקות?

מה שרשמת הוא לא פרמטר הוא ממש מופע של דרדס ופונקציה שמקושרת אליו.

לפונקציה נכנס רק פרמטר (:

ארגיומנטים לפונקציה לא יכולים להיכתב ככה…
אני במבין שאתה מנסה לפנות לפונקציה במחלקה smurf, אבל היא אפשר להעביר פונקציה בהצהרה שלה
רק בקריאה שלה.

אני מנסה להבין את הנחיית התרגיל, מתבקש מאיתנו שהפעולה give order תקבל פעולה של דרדס רגיל ותפעיל אותו עליו.
אם כך הפעולה give order אמורה לקבל מופע + פעולה כמו בדוגמא של ים:

papa_smurf.give_order(basic_smurf.sleep)

וממה שאני מבין ממך אם הפונקציה אמורה לקבל רק פרמטר, איפה בדיוק נכנס המופע של הדרדס שעליו תופעל הפונקציה?

המופע נכנס לפונקציה של דרדסאבא כמו שרשמת … השאלה מה עדית בחתימת הפונקציה אצל דרדסבא

זה בדיוק מה שאני לא מצליח להבין, איך לגרום לכך שהפונקציה תדע לקבל את המופע random_smuf.function

כמו כל פרמטר רגיל. אין משו מיוחד שצריך לעשות

שאלה נוספת בנושא:
האם אנחנו יכולים להעביר למתודה papa_smurf.give_order מופע של מתודה (כמו בדוגמא של ים: basic_smurf.sleep) שגם היא בעצמה מקבלת ארגונטים (לדוגמא: אם אנחנו רוצים להעביר זמן שינה למתודה sleepת האם אפשר לעשות זאת ע"י
papa_smurf.give_order(basic_smurf.sleep(2)) d?

כרגע אמרו לנו שלא ושהפעולה give order צריכה לקבל פעולה בלי אגרומנטים (כמו sleep), מניח שבהמשך יהיה שובו של דרדסבא 2.0 וכן נצטרך לעשות את זה.

בכל אופן @aviadamar מצאתי את הדרך לפתרון למרות שלקח לי קצת יותר זמן להבין אותה משחשבתי, תודה רבה על העזרה!

2 לייקים