אני תקוע כבר כמה זמן אם להבין למה אני לא מצליח להחזיר רת הרשימת שחקנים מהפונקציה remove_player.
פונקצית הוספת שחקן עובדת, אבל כשאני מנסה להוריד שחקן הרשימה לא מתעדכנת.
מצורף החלק הרלוונטי מתוך הפונקציה פה:
חלק מהפונקציה
for i in range(len(names)):
if names[i] == player_to_remove:
self._arena_players = self._arena_players.remove(i)
return self._arena_players
תודה מראש לעוזרים
devorack
נראה לי שווה לחזור ולקרוא על remove
carpelev
לא פותר את הבעיה.
גם בלי המשוואה, או אם אני עושה pop בלי משוואה, עדיין זה לא מחזיר את הרשימה בלי השחקן.
devorack
מהבחינה הזו pop עובדת כמו remove (רמז: אתה לא קורא לה נכון)
לייק 1
carpelev
נכון, נראה לי הבנתי מה התכוונת: עשיתי remove או pop לאינדס, לא לערך.
גם כששיניתי זה לא עובד
נראה לי שאני עושה משהו לא נכון עם המחלקה… זה מחזיר את ה-
<main.Player object at 0x00000257CA3A6588>
יכול להיות הבעיה היא בעצם אפילו לפני, כי אם אני מנסה להוציא ערך שהיה ברשימת שחקנים לפני ההוספה (בפונקציה הקודמת) זה מחזיר את הערך למעלה, ואם אני עושה על ערך שהוספתי עם add_player זה מחזיר שגיאה
devorack
את המשפט “ואם אני עושה על ערך שהוספתי עם add_player זה מחזיר שגיאה” לא הבנתי.
לגבי הערך שכתבת ( < main .Player object at 0x00000257CA3A6588>)
זה דווקא נראה לי בסדר גמור. חשוב להבין מה הערך הזה אומר. בנוסף - זה קצת תלוי מה אתה מנסה להדפיס
carpelev
אני מנסה תמיד להחזיר את הרשימה (העדכנית) של השחקנים.
אפשר להראות לך בפרטי, ננסה להבין מה הבעיה?