ריצת 2000, מנסה לעשות שוב את התרגיל

מעתיק כאן את השאלה לנוחיותכם:

כתבו פונקציה בשם timer שמקבלת כפרמטר פונקציה (נקרא לה f) ופרמטרים נוספים.
הפונקציה timer תמדוד כמה זמן רצה פונקציה f כשמועברים אליה אותם פרמטרים.

  1. עבור הקריאה timer(print, "Hello") , תחזיר הפונקציה את משך זמן הביצוע של print("Hello") .
  2. עבור הקריאה timer(zip, [1, 2, 3], [4, 5, 6]) , תחזיר הפונקציה את משך זמן הביצוע של zip([1, 2, 3], [4, 5, 6]) .
  3. עבור הקריאה timer("Hi {name}".format, name="Bug") , תחזיר הפונקציה את משך זמן הביצוע של "Hi {name}".format(name="Bug")

ב-2 הדוגמאות הראשונות שהתרגיל מראה אין לי בעיה, הבעיה שלי היא בדוגמא השלישית, הפרמטר הראשון שאני שולח הוא לא פונקציה (כמו print או zip) אלא מחרוזת, ולכן אני מקבל שגיאה :
TypeError: ‘str’ object is not callable
כלומר שאי אפשר לקרוא למחרוזת.
לא ברור לי עניין הנקודה ואיך לשלוח את הפרמטר לפונקציה הtimer.

אני ממליץ לרענן את הזיכרון לגבי *args ו־**kwargs.

2 לייקים