В программе, над которой я работаю, всякий раз, когда игрок атакует врага, запускается небольшой оператор 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]
.