הזמנה: סשן תכנות עם ים – מפגש שני

תגיות:

בירושה, בדוגמאות שניתנו במחברות, במחלקה הראשית, יש סופר ב INIT. ולא הבנתי את הנקודה הזאת. אם זאת מחלקה ראשית, הסופר של מה בדיוק מועבר אל האיניט שלה, ובעיקר למה…?

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

האם מומלץ שתמיד יהיה init? הסתבכתי מאוד בתרגיל מחשמל בגלל שבהתחלה קיבלנו סוגי מחלקות (או/ וגם וכו) והסתבכתי עם מתי בעצם ליצור מופע שלהם ומתי בעצם לקבל את האינפוט. בקיצור אשמח אם יוקדש בשיעור מחר אפילו רק טיפים לאיך לפתור את תרגיל מחשמל.
בנוסף, יש מקרים שבהם חריגה תקפוץ ובכל זאת תמשך הרצת התוכנית?

מצטרפת לשאלה של @devorack, מתי זה נכון לרשת את init ממחלקת העל?
כאשר במחלקת העל יש צורך לקבל ארגומנט לתכונה מסוימת ובמחלקת הבת, התכונה הזאת היא קבועה(ישנם תכונות נוספות שאנחנו כן רוצים שיפעלו כמו במחלקת העל).
האם נכון לרשת ולא להשתמש בארגומנט במידה וקיבלנו מהמשתמש,
או שבמקרה כזה, עדיף מלכתחילה ליצור init חדש, שהמשתמש לא יוכל להכניס פרמטר לארגומנט הספציפי.
לדוגמה:

 class Example:
    def __init__(self, a=None, b=None, c=None):
        self.a = a
        self.b = b
        self.c = c

ובמחלקה היורשת:

def __init__(self, **kwargs):
    a = 10
    super().__init__(a=a, **kwargs)
   

או שנכון יותר לעשות כך:


    def __init__(self, b=None, c=None):
        self.a = 10
        self.b = b
        self.c = c

(נתקלתי בזה בשאלה של הקוביות שבתתי קוביות היו ערכים קבועים.)

לייק 1

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

מצד שני אני נותנת אופציה להכניס פרמטר שבטוח יידרס :thinking:

אם את מכוונת שמופע של המחלקה תמיד יהיה בעל הערך הזה, אני לא רואה כאן בעיה

אשמח לשמוע על דיבגגינג.
שיטות , דרך חשיבה נכונה .
אני חושב שזו האתגר הכי מעצבן לכל מתכנת.

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

אני חושב שזה הרבה יותר נוח מאשר להשתמש במקלדת
והייתי ממש רוצה לדעת כיצד עושים זאת
תודה!

האם יש לינק לאירוע של היום? או שזה גם יהיה לייב ביוטיוב?

קישור לאירוע: https://youtu.be/sLPJ1FRnwZc

לייק 1

חזרנו עם הלינק הבא
https://youtu.be/o91_6CvxrpI

2 לייקים

טוב
אולי בסשן הבא…