При выполнении этого кода внутри функции:
Код: Выделить всё
print("p1 " + str(self.poison_counter))
if self.poison_counter > 0:
print("p2 " + str(self.poison_counter))
self.health -= self.poison_counter
print("p3 " + str(self.poison_counter))
Выполняется оператор if.
p2 печатает 5.
Свойство health не изменяется.
p3 печатает 0.
Итак, где-то между p2 и оператором, изменяющим состояние объекта, переменная меняется на 0.
Других операторов, изменяющих состояние объекта, нет. Свойство яда_counter, кроме параметра += это до 5.
Подробнее здесь: https://stackoverflow.com/questions/793 ... o-0-python
Мобильная версия