היי,
אני יושב על התרגיל אבידות ומציאות מאז שהוא פורסם ולא מצליח לפתור בעיה ספציפית שנראית בלתי פתירה.
מימשתי את find ואת use ושניהם עובדים טוב בנפרד כאשר מעבירים לכל אחד מהם את הפרמטרים שלו.
כאשר כותבים אותם אחד אחרי השני כמו בדוגמה שבתרגיל, use מקבל כפרמטר את הפונקציה file_printer (במקום רשימת הקבצים). חשבתי לזהות אם מועברת לו פונקציה, ואם כן, להעביר במקומה את רשימת הקבצים שהוחזרה מ-find אבל המשתנה הזה לא קיים בתוך use.
בקיצור אני קצת אבוד אשמח להכוונה
Ode
תנסה לקרוא פה
Alon.B.A
כן קראתי את זה עד הסוף, האמת כבר פעמיים. וגם את יתר החומרים שצורפו באשכול על Decorators.
אני עובד עם הדיבאגר ואין לי מושג מה קורה, אלו השלבים של הדיבאגר עד שיש שגיאות:
מדלג בין כותרות שתי הפונקציות use ו-find
עובר ל-@find ואחר כך חזרה לפונקציה find
מריץ את הקוד בתוך הפונקציה שיוצר את רשימת הקבצים
עובר לכותרת של פונקציה פנימית, ואז ישר לשורת ה-return שלה (לא לפונקציה שעוטפת את הפונקציה “המקושטת”).
מדלג לuse@ ואז לפונקציה use עצמה
מריץ את הפונקציה עצמה (כאשר טרם הועבר לפונקציה הפרמטר files).
זהו, מאחר שהפונקציה מתחילה לרוץ ללא הפרמטר יש שגיאות.
Alon.B.A
אשמח לסיוע מהסגל לפני שהזמן להגיש מגיע
Yam
לצערי אני עובד על החומרים לשבועות הקרובים אז אין לי פנאי לסייע אישית בהתראה קצרה.
האם הצצת בשאלות קשורות ב־Stackoverflow?
Alon.B.A
כן.
קראתי גם שאלה אחרת שבמקרה יש אליה קישור בראש העמוד בקישור שאתה שלחת.
אני עובד בדיוק כמו שהיה כתוב בתשובות ובחומרים על decorators שצורפו.
עטפתי את הפונקציה “העוטפת” בעוד פונקציה (שהיא מקבלת את הפונקציה “המקושטת”). השתמשתי ב-* והעברתי בתוך find את רשימת הקבצים ל-files. נראה שיש משהו שצריך לדעת ואני לא יודע ולא מצליח למצוא את זה.
aviadamar
בגדול הדקורייטור העליון יותר מקבל אליו את ערכי ההחזרה של הדקורייטור התחתון. אתה בטוח שהכל מסודר בצורה שזה עובר אחד אל השני ?
Alon.B.A
הבנתי שכך זה אמור לעבוד, מימשתי את הקוד בצורה כזו שחשבתי שזה מה שיקרה, אבל מסיבה כלשהי הקוד רץ אחרת (תיארתי בפירוט מעלה את השלבים של הדיבאגר ואת הסיבה שזה לא עובד).
העליתי את הפתרון שלי למערכת אבל כנראה כבר לא אהיה זכאי לתעודה. ממש מפריע לי שיש לי איזשהו פער בידע. מאחר שאסור לשלוח פתרונות לתרגילים, איך אני יכול לבדוק מה עשיתי לא נכון?