Fehler: ungebundene Methode Dragon () muss mit Enemy-Instanz als erstes Argument aufgerufen werden (stattdessen Player-Instanz erhalten)

class Character: 
    def __init__(self):
        self.name = ""
        self.health = 1
        self.health_max = 1

class Player(Character):
    def __init__(self):
        Character.__init__(self)
        self.state = 'normal'
        self.health = 10
        self.health_max = 10

class Monster(Character):
    def Dragon(self):
        self.name = "Dragon"
        self.health = 20

    def Goblin(self):
        name = "Goblin"
        health = 5

p = Player()
p.name = raw_input("Please enter your name: ")
print p.name
print p.state
print p.health
print p.health_max

m = Monster()
enemy = m.Dragon
print enemy.name
print enemy.health

Entschuldigung, ich habe dies etwas einfacher gemacht, um zu erklären, womit ich Schwierigkeiten habe. Ich habe ein bisschen Probleme mit den Grundlagen von OOP und stoße auf ein Problem mit diesem Codefragment. Ich versuche hier einen "Drachen" zu erstellen, aber es tritt der folgende Fehler auf:

Traceback (letzter Aufruf zuletzt): Datei "test2.py", Zeile 32, in print enemy.name AttributeError: Objekt 'function' hat kein Attribut 'name'

Kannst du mir sagen, was ich hier falsch mache? Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage