Мне нужна помощь в удалении записи из списка из функции класса - PullRequest
0 голосов
/ 26 мая 2020

В программе, над которой я работаю, всякий раз, когда игрок атакует врага, запускается небольшой оператор if, чтобы проверить здоровье цели:

    def attack(self, target):
        target.stats.health = target.stats.health - self.stats.damage
        if target.stats.health <= 0:
            if isinstance(target, Enemy) == True:
                print(target.name, "has died")
                del #Something here to delete the target from the list of enemies
                #For example, in myPlayer.attack(enemies[0])
                #The target is enemies[0]
            else:
                pass
        else:
            print(target.name, "has", target.stats.health, "health left")

В моем коде экземпляры класса Enemy созданы для создания врагов, и все они заносятся в список. Что я хочу сделать, так это удалить запись в списке, если здоровье цели опустится ниже. Я знаю, что цель сама по себе является ссылкой на экземпляр моего Enemy, поэтому использование del target просто удалит эту ссылку. Есть ли способ, которым я могу вызвать запись параметра или что-то еще и удалить это? Поэтому, если я наберу myPlayer.attack(enemies[x]), функция del будет работать как del enemies[x].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...