Как указано выше, в настоящее время я пытаюсь напечатать несколько значений внутри строковой функции, используя процесс (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)