Ответы пользователя по тегу ООП
  • Почему вылезает ошибка "TypeError: () takes 1 positional argument but 2 were given"?

    @mrxor
    Simple is better than complex
    Проблема в этом вызове
    def find_determinant(self):
            self.__print_matrice__(super().find_determinant(*self.__create_matrice__()))

    Код со * - правильный, там как раз должно получиться 2 аргумента, код в трейсбеке (без распаковки через *) - неправильный - в таком случае в функцию прилетает один аргумент вместо двух.
    Ответ написан
    Комментировать
  • Почему в __init__ не меняется переменная?

    @mrxor
    Simple is better than complex
    В вашем коде проверка здоровья изменение is_alive происходит в методе __init__ -> __init__ вызывается только один раз при создании объекта. Следовательно после того, как вы создали объект вызвав at = Warrior() проверка уже не будет вызвана. Сделайте отдельный метод для уменьшения здоровья и в нем же добавьте переключение is_alive в False при его падении до нуля.
    При этом, если вы вызовете at = Warrior(health=0) - ваша проверка сработает и Warrior породится мертвым, как бы грустно это ни было.
    Ответ написан
    Комментировать