Я пытаюсь вызвать несколько параметров (self, other) в функции __str __ (), определенной в классе, но получаю сообщение об ошибке - PullRequest
0 голосов
/ 30 апреля 2020

Как указано выше, в настоящее время я пытаюсь напечатать несколько значений внутри строковой функции, используя процесс (self, other), но продолжаю получать эту ошибку:

TypeError: str () принимает ровно 2 аргумента (1 дано)

Вот мой соответствующий кодовый блок:

def __str__(self, enemy):
                s = "{} vs {}\n\n".format(self.name, enemy.name)

                s += "Your move set: "
                for move in self.moves.keys():
                        s += move + " - "
                s += "\n\n"

                s += "Current health: {}\n\n".format(self.health)

                s += "Enemy health: {}\n\n".format(enemy.health)

                return s

Вот как я вызываю функцию, очевидно, с обрезанным жирным шрифтом .

c1 = Fighter("Gunsmith" , "gunsmith.gif")

Main.character = c1

statsList.insert(END, str(self.character))

Код работает, если я удаляю врага из параметров и всех других параметров врага.х.

https://pastebin.com/7dWi2DpB мой полный код, как и его тоже подробно, чтобы связать несколько частей.

вот полная ошибка:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 1547, in __call__
    return self.func(*args)
  File "C:\Users\CornTortilla\Desktop\Comp. Science\CSC132\Github\teamProject\Pi.py", line 197, in chooseGunsmith
    self.fightWindow()
  File "C:\Users\CornTortilla\Desktop\Comp. Science\CSC132\Github\teamProject\Pi.py", line 180, in fightWindow
    statsList.insert(END, str(self.character))
TypeError: __str__() takes exactly 2 arguments (1 given)
...