Erro: método não vinculado Dragon () deve ser chamado com a instância do Inimigo como primeiro argumento (em vez disso, tem a instância do Player)

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

Desculpe, eu fiz isso um pouco mais simples para explicar com o que estou tendo dificuldades. Eu estou tendo um pouco de dificuldade com o básico da POO, e estou me deparando com um problema com esse trecho de código. Estou tentando criar um "Dragon" aqui, mas estou com o seguinte erro:

Traceback (última chamada mais recente): Arquivo "test2.py", linha 32, em print enemy.name AttributeError: objeto 'function' não possui atributo 'name'

Você pode me dizer o que estou fazendo de errado aqui? Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion