אין לזה צורה - למה הכוונה בפעולה של מחלקה?

מה ההבדל בין הפעולה rand_rects לפעולות האחרות שעלינו לממש?
עברתי על המחברת פעמיים וראיתי הסבר על משתני מחלקה, אבל לא על פעולות של המחלקה.
האם הכוונה לפעולה שלא מקבלת self? הייתי רוצה ליצור אחת כזאת ולקרוא למתודה הנ’'ל על ידי שם המחלקה ללא אינסטנס. האם הבנתי נכון?

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

לייק 1

תודה רבה על התגובה :slight_smile:
הכוונה היא לדוגמא הזו?

העניין הוא שגם כאן מעבירים לה instance של cinnemon, והמתודה is_healthy מקבלת self. אז עדיין לא הבנתי מה ההבדל בין “פעולה של מחלקה” כמו rand_rects לבין הפעולות האחרות שיש ל Rectangle והאם הפעולה הזאת יכולה לא לקבל אפילו את self כדי שאוכל לקרוא לה כך:
()Rectangle.rand_rects ללא יצירת instance של מלבן כלל.

בגדול פעולה של מחלקה לא חייבת לקבל self אם היא לא משתמשת באובייקט. ואז אפשר להסתכל על זה כמו ספריה שאתה ניגש לפונקציה בה סטייל random.random()
(לא יודע אם זה הדוגמא הכי טובה אבל לי זה עוזר לחשוב על זה ככה)

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

לייק 1

יש מצב שזה קצת מותח את גבולות החומר הנלמד ואני גם לא בטוח שלהוריד את self זה הדבר היחיד שצריך שזה יהיה ״תקני״ אבל אני לא חקרתי את זה לעומק (:

לייק 1