כמה שאלות -
דרדסבא בgive_order מקבל פעולה וגם אינסטנס של דרדס ומפעיל את הפעולה על האינסטנס ?
לגבי האוכל :
הכוונה היא ליצור למשל משתנה גלובלי food שדרדשף מכניס לתוכו מנות וכמויות , וכל דרדס מקבל רשימה ואם אין מספיק כמויות בfood אז צריכים לבצע התאמה לכמויות בfood ?
והאם יש אפשרות להעביר dict לדרדס בפעולה eat (עם מנות וכמויות) במקום רשימה ?
Yam
נניח שיצרתי Smurf:
x = Smurf("Moshe")
דרדסאבא אמור לקבל את הפעולה כך:
y = PapaSmurf("Shlomke")
y.give_order(x.sleep)
לגבי האוכל – משאיר לך לפרשנות.
בד"כ לא מומלץ ליצור משתנים גלובליים, חשוב אולי על דרך אחרת
2 לייקים
gonny
אשמח לחידוד קטן לגבי הפעולה שדרדרסבא מקבל. כתוב “שמקבלת פעולה של דרדס רגיל ומפעילה אותו עליו”, ה"עליו" הכוונה לדרדסאבא או לדרדס?
yosefco3
מהתשובה של ים אני מבין שמפעילה אותו על הדרדס.
זה גם הרעיון - give order
Yam
יאפ, כמו שיוסף פה אומר, הכוונה להפעיל על הדרדס.
ori81510
אז הוא מקבל גם מופע של דרדס? ואם מדובר בפעולה כמו eat אז צריך גם את רשימת המנות, לא?
Yam
בוא נגיד שלבינתיים הוא יודע לקבל רק פעולות ללא פרמטרים, כמו sleep
לא צריך לתת לgive_order את sleep עם סוגריים? הרי זו פעולה לא תכונה, לא?
לייק 1
yosefco3
כאשר אתה מעביר פעולה בלי סוגריים , העברת את הפעולה אך היא לא תופעל.
אם תצרף סוגריים אתה מפעיל את הפעולה.
2 לייקים
yuval.cagan
מטרת הפונקציה היא להפעיל את הפעולה בתוכה, ולא בעת הקריאה לה. אם תעביר את הפונקציה המבוקשת עם סוגריים, הפונקציה give_order, תקבל כפרמטר את ערך ההחזרה של הפונקציה השניה, וככל הנראה תקפיץ שגיאה.
לייק 1
shirabarel
לא מצליחה להבין לגבי הגדרת הפעולה…
def give_order(self,…?)
nadav
האם ניתן להעביר גם את השף לeat או רק רשימה של מנות?
aviadamar
אם זה משרת אותך תעביר, אבל לדעתי אין צורך וזה יכול להישאר בדיוק כמו שזה מוגדר בתרגיל.
לייק 1
efratush
אם מופעלת פעולת שינה לדרדס שהוא כבר ישן, האם מתחדשת פעולת השינה שלו (כלומר, לא משנה כמה זמן עבר מאז שנרדם, מרגע זה צריך לחכות עוד 8 שעות שיתעורר) או שמתעלמים מהפעולה?
aviadamar
שמופעלת פעולה על דרדס ישן לא אמור לקרות כלום הוא ממשיך לישון.
עריכה: נושא הפסקת השינה מחוץ לגבולותי מה שנקרא.
efratush
הם ישנים בדיוק 8 שעות!
משמע שהם קמים לבד.
לייק 1
Gili
גם לא הבנתי…
eliory09
יש גם אפשרות שלא לשמור משתנה בוליאני של ישן/ער, אלא את זמן השינה האחרון שלו, ומכאן להמשיך ולהסיק מסקנות בנוגע למצבו של הדרדס
אם בכל זאת רוצים לעשות טיימר - יש דרכים לעשות גם את זה באמצעות threading (אבל שוב, לדעתי מיותר).