Ich erstelle ein textbasiertes Abenteuer in Python. Ich habe zwei Bücher über Python fertig und nehme einen Online-Kurs, also denke ich, dass ich wirklich alle Grundlagen habe.ungebundener Methodenfehler - Textbasiertes Abenteuer
Jetzt erstelle ich gerade meine Artikel. Mein Setup ist
Gegenstand-> Waffe -> (spezifische Waffe hier).
Alle Klassen erben die vorherige.
Ich kann die Werte der Elemente wie Holy_Sword und Stick nicht drucken. Ich kann sie drucken, wenn ich sie nicht als Klassen erstelle und einfach eine Variable verwende, um die Waffeninstanz zu erstellen. Aufgrund dessen, was ich später machen möchte, möchte ich wirklich, dass sie Klassen sind.
Der Fehler Ich erhalte ist:
ungebundene Methode str() muss mit Holy_Sword Instanz aufgerufen werden als erstes Argument (nichts stattdessen bekam)
Mein Code ist:
class Item(object):
def __init__(self, name, value, description):
self.name = name
self.value = value
self.description = description
def item_description(self):
return "Your %s is worth %d gold and is a %s" % (self.name, self.value, self.description)
class Weapon(Item):
def __init__(self,name, value,description, attack):
self.attack = attack
super(Weapon, self).__init__(name, value, description)
def __str__(self):
return "Your %s is worth %d gold and has an Attack Damage of %d, it is %s" % (self.name, self.value, self.attack, self.description)
class Stick(Weapon):
def __init__(self, name, value, description, attack):
super(Stick, self).__init__(name = "Stick", value= 1, description = "A stick...there may be potential here....or not.", attack = 1)
class Holy_Sword(Weapon):
def __init__(self, name, value, description, attack):
super(Holy_Sword, self).__init__(name = "The Holy Sword of Antioch", value= 20, description = "A Sword whose potential far outweighs it's lack of stylishness ", attack = 20)
class Sword(Weapon):
def __init__(self, name, value, description, attack):
super(Sword, self).__init__(name = "Sword", value= 3, description = "A Wooden Sword.", attack = 5)
print Holy_Sword.__str__()