Как удалить экземпляр класса в классе в Python? Возможно ли удалить его в указанном месте в коде?class Hero:
def __init__(self):
self.name = input("name? ")
self.health = 100
def blast(self, enemy):
damage = 55
enemy.hurt(damage)
def hurt(self, damage):
self.health -= damage
if self.health <= 0:
# в этом месте экземпляр класса должен удаляться
# (в данном примере должен удалиться экземпляр person2)
else:
print(self.name + ": you hurt me! i have %d health" % self.health)
person1 = Hero()
person2 = Hero()
person1.blast(person2)
person1.blast(person2)

21 Авг 2019 в 06:59
204 +1
0
Ответы
1

В Python не существует явной возможности удалить экземпляр класса в указанном месте кода. Однако, когда на экземпляр класса больше не ссылаются никакие переменные, подобный экземпляр будет удален автоматически благодаря сборщику мусора.

В вашем примере, после того как экземпляр person2 станет недостижимым (поскольку на него больше нет никаких ссылок), сборщик мусора Python удалит его автоматически.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 727 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир