ריצת 2000 - TypeError

ככה הגדרתי את הפונקציה:
def timer(f, *parameters):

הקוד עובד במחברת, אבל הבודק האוטומטי מביא לי שגיאה ומדבר על משתנה שלא הגדרתי - ‘name’
ניסיתי למצוא תשובה באינטרנט ובשגיאות דומות שהיו באתר ולא הסתדרתי.
אשמח לעזרה

לפי השגיאה נשמע שהבודק האוטומטי מנסה לשלוח את הארגומנט name=something והפונקציה שלך יכולה לקבל רק פרמטרים ללא שם. לא הגעתי לתרגיל אז אני לא בטוחה מה ההוראות, אבל כדאי לעבור עליהן ולוודא מה הפונקציה אמורה לקבל.
עריכה - הלכתי להסתכל על ההוראות והדוגמא השלישית מראה התייחסות למקרה כזה ומה מצופה מהפונקציה להחזיר.

לא רשמתי ‘name’ בשום מקום בקוד, זה מה שמפתיע אותי.
timer בכל אופן אמורה לקבל פונקציה ועוד פרמטרים,כמו שהגדירו בתרגיל:
“כתבו פונקציה בשם timer שמקבלת כפרמטר פונקציה (נקרא לה f) ופרמטרים נוספים.”

השתמשתי בעוד פונקציה אחת מהמודול time אבל גם אליה לא הכנסתי שום פרמטר והיא לא מצפה למשתנה :man_shrugging:

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

2 לייקים

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

עבור הקריאה timer("Hi {name}".format, name="Bug") , תחזיר הפונקציה את משך זמן הביצוע של "Hi {name}".format(name="Bug")

לייק 1

מודה שאני תקוע על אותה בעיה כבר שעתיים.
עברתי על כל המחברות שנוגעות לפונקציות ול-unpacking. זה לא מסביר למה הקוד לא רץ כאשר הפרמטר הוא מילון

ממליצה להסתכל על מחברת 5.2, החל מהכותרת “מספר משתנה של ארגומנטים עם שמות”

אותה שאלה… איך מתמודדים עם הפונקציה המיוחדת format?
אני הרי צריך להפעיל את הפונקציה הזו בסגנון הבא:
format(name=“Bug”).

כיוון שהשם name הוא משתנה בין קלטים שונים שאקבל, אני מנסה להכניס אותו כמשתנה i אבל מקבל שגיאה, כי הוא מתייחס ל name כ string ולא כ"משתנה כללי". כלומר השאלה היא איך אני לוקח את המילה name ומעביר אותה כמשתנה בלי שהיא הופכת לstring

תחזור להסתכל איך מפעילים את format.

הכלליות/ספציפיות לא צריך להשפיע בתרגיל הזה כמו שהוא מוגדר