בודק אוטומטי 2.0

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

בגדול השאלה שלי היא איך אמורים להתייחס להיערות החדשות?
גם באותה המידה של מי שלא מתקן לא ייבדק לו?

או לדוגמה קיבלתי היערה שחסרה לי המתודה assert None בתרגיל של הfilter.
עכשיו קודם כל, מגניב ממש. דבר שני, לא למדנו על זה. האם עליי לתקן את התרגיל כך שהקוד ישתמש במתודה הזו או שאפשר להשאיר ככה?

תודה :upside_down_face: :upside_down_face:

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

זה לגבי פילטר עם None (מקרה 1) (אני מנחשת לפי מה שכתבת, תראה אם זה עובד, אם לא - שים פה את ההערה מהבודק)

לגבי ה path יש לי כמה ניחושים - שלח את השגיאה, זה יעזור

היי תודה.
זו השגיאה של הpath:

 TypeError: find_special_state() missing 1 required positional argument: 'path'

וזהו השגיאה של הNone

 AssertionError: חסרה המתודה my_filter assert None

לגבי פילטר - זה דווקא מקרה 3 מהלינק למעלה - תבדוק טוב את שם הפונקציה, צריך להיות my_filter

לגבי הpath: תכתוב את הפונקציה כך שלא תבקש פרמטרים, הבודק מנסה להריץ find_special_state()

אוקיי תודה תיקנתי את הפילטר.
לגבי הpath, לא הבנתי אם לא נותנים לפונקציה path איך היא תוכל לפתוח את הקובץ?
פשוט לכתוב בתוך הפונקציה עצמה את הנתיב?

זה יעבוד. יש עוד דרכים שגם יעבדו.

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

כן. פייתון מנסה לחפש ב־scope של הפונקציה הנוכחית, ואם היא לא מוצאת היא עולה scope למעלה. כל עוד המשתנה הוגדר לפני שהקוד רץ היא תדע להשתמש בו.
מה שכן – חשוב לזכור שכל עוד המשתנה immutable, פייתון לא תוכל לשנות אותו מתוך הפונקציה (זה גם יהיה דבר מאוד לא מנומס לעשות, גם במצב שהוא mutable ואפשר לשנות אותו).

לייק 1