Неверное взятие значений функцией

Вот мой код:

class Player:
    def __init__(self, name, hp, damage):
        self.name = name
        self.hp = hp
        self.damage = damage


class Enemy:
    def __init__(self, nameq, hpq, damageq):
        self.name1 = nameq
        self.hp1 = hpq
        self.damage1 = damageq


class Room(Player, Enemy):
    def __init__(self, name, hp, damage, nameq, hpq, damageq):
        super().__init__(name, hp, damage)
        super().__init__(nameq, hpq, damageq)

    def fight(self):
        print(self.hp)
        print(self.damage)
        print(self.hp - self.damage)



Swordsman = Room('Swordsman', 100, 10, 'Orc', 80, 8)
Swordsman.fight()

По идее должно выводиться '100', '10', '90'(так как игрок бьет сам себя), но выводится '80', '8', '72'(то есть действие выполняет противник, а не игрок),т.е. вторые значения, что неверно. Если же я заменю hp на hpq(как должно быть для верной работы), то вылазит эта ошибка:

Traceback (most recent call last):
  File "C:/Users/munty/PycharmProjects/pythonProject2/Class Swordsman.py", line 28, in <module>
    Swordsman.fight()
  File "C:/Users/munty/PycharmProjects/pythonProject2/Class Swordsman.py", line 21, in fight
    print(self.hpq)
AttributeError: 'Room' object has no attribute 'hpq'

С super работаю впервые. Пытался обойти это разными способами, что успел найти в интернете, но всё время различные ошибки, поэтому вернулся к этому этапу, так как тут хоть и криво, но работает. Заранее спасибо.


Ответы (0 шт):