Почему в __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
В данном случае переменная is_alive в методе __init__ устанавливается только один раз при создании экземпляра класса Warrior, следовательно изменение переменной health после этого не будет автоматически изменять переменную is_alive.
Когда вы устанавливаете at.health = 0, значение health в экземпляре at становится равным 0, но значение is_alive остается в своем изначальном значении True, так как это значение будет установлено только при создании экземпляра класса.
Если вы хотите, чтобы переменная is_alive изменялась в зависимости от значения переменной health, вам нужно добавить логику обновления is_alive в вашем коде, например, в методе обновления состояния health.
В данном случае переменная is_alive в методе __init__ устанавливается только один раз при создании экземпляра класса Warrior, следовательно изменение переменной health после этого не будет автоматически изменять переменную is_alive.
Когда вы устанавливаете at.health = 0, значение health в экземпляре at становится равным 0, но значение is_alive остается в своем изначальном значении True, так как это значение будет установлено только при создании экземпляра класса.
Если вы хотите, чтобы переменная is_alive изменялась в зависимости от значения переменной health, вам нужно добавить логику обновления is_alive в вашем коде, например, в методе обновления состояния health.