משחקי הרעב סוג נתונים של מחלקה

אהלן!

אני מנסה לפתור את משחקי הרעב עם שימוש במחלקות ומסתבך עם הטיפוס של מחלקה שחוזר לי.

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

בגלל זה אני כל הזמן מקבל שגיאות בסגנון: “object is not subscriptable”

ניסיתי להמיר את זה לסוגי טיפוסים שאני מכיר ללא הצלחה.

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

2 לייקים

למה שהפונקציה שלך לא תחזיר לך את הטיפוס שמתאים לך?

לייק 1

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

ניסיתי להחזיר מהמחלקה טיפוס אחר אבל הוא תמיד מחזיר את אותו סוג טיפוס (שזה הטיפוס של המחלקה)

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

אפשר לשלוח לך בפרטי את הקוד?

נסה אותי :slight_smile:

לייק 1

אני חושבת שבשביל זה המציאו את פונקציית הקסם init :wink:

לייק 1

שלום,
הבנתי ש פעולת הקסם __str__ מטרתה לתאר אובייקט כמחרוזת. ב class point
הגדרנו אותה, ואני ממשיכה איתה לתרגיל . הבנתי כי קוראים לה כאשר קוראים לprint.
אבל למרות שפעולת הקסם הוגדרה, אני ממשיכה לקבל
main.Point object at 0x000002158161A6C8>
ולא מצליחה לקבל את הנקודה עצמה…

לייק 1

זו אותה בעיה שמופיעה כאן: אורטל קומבט חלק 1 שאלה על רשימת הנמסיס

לייק 1