Почему в __init__ не меняется переменная? Почему не меняется переменная is_alive?class Warrior:
def __init__(self, health=50, attack=5):
self.health = health
self.attack = attack
#
self.is_alive = True
if self.health >> 0, True

13 Ноя 2019 в 20:00
253 +1
0
Ответы
1

В данном случае переменная is_alive в методе __init__ устанавливается только один раз при создании экземпляра класса Warrior, следовательно изменение переменной health после этого не будет автоматически изменять переменную is_alive.

Когда вы устанавливаете at.health = 0, значение health в экземпляре at становится равным 0, но значение is_alive остается в своем изначальном значении True, так как это значение будет установлено только при создании экземпляра класса.

Если вы хотите, чтобы переменная is_alive изменялась в зависимости от значения переменной health, вам нужно добавить логику обновления is_alive в вашем коде, например, в методе обновления состояния health.

19 Апр 2024 в 02:05
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир