אין לזה צורה - פעולות על רשימות אובייקטים

האם הפעולות
filter_by_size
filter_by_perimeter

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

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

בגדול אני מסכים, זה מה שעושים גם בפונקציה האחרונה rand_rect.
אבל להבדיל ממנה - בהוראות נרשם שהפונקציות מקבלות רשימה מוכנה, ולא יוצרות אחת…

כן, הן יכולות. חשוב על מה שלמדת בתחילת מחברת 3

זה מרגיש לי ממש מוזר מבחינת התנהלות “תקינה” של קוד ומה השימוש של מחלקה.
נניח יצרתי מלבנים בשמות a,b,c,d.

עכשיו אני רוצה להפעיל את הפונקציה שעושה פילטר לפי שטח.
כדי לקרוא לה אני צריך לעשות למשל
a.filter_by_size([a,b,c,d], 100).

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

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

2 לייקים

באותו נושא, ממש ניסיתי לא לשכפל קוד ולהשתמש בפונקציה נוספת ששתי הפונקציות הללו יקראו לה, ומאוד הסתבכתי

איפה בא לידי ביטוי הסיבוך?

בניסיון לשלוח לפונקציה את הפעולות get_perimeter() ו-get_surface()

מוזמנת לשלוח את הקוד בפרטי ולנסות להסביר מה ניסית לעשות, אנסה לעזור