为什么 class 无法识别此方法?

Why isn't this method recognised by the class?

我正在尝试编写一个程序,使用 OOP 模拟怪物和英雄之间的战斗,其中一部分是为怪物生成统计数据,包括元素类型、防御、攻击和名称,但是当我调用GetMonsterElement(self, Melement),我得到

NAMEERROR line 9, 'GetMonsterElement' is not defined

我在下面附上了一些代码,如果有人能解释我做错了什么,我将不胜感激。

 import random, time

 class monster:
     def __init__(self):
        self.Melement = self.GenerateMonsterElement(self, Melement)
        self.name = ''
        self.hp = 0
        self.attack = 0
        self.defence = 0
        DisplayMonsterElement(self, Melement)

     def GenerateMonsterElement(self, Melement):
        ElementGen = random.randint(1,3)
        if ElementGen == 1:
           self.Melement = 'Ice'
        elif ElementGen == 2:
           self.Melement = 'Fire'
        elif ElementGen == 3:
           self.Melement = 'Grass'
        return self.Melement

    def DisplayMonsterElement(self, Melement):
       print(self.Melement)

def main():
   ThisBattle = monster()
   monster.Run()

main()

也许你打算写这个:

import random, time

class monster:
     def __init__(self):
        self.Melement = self.GenerateMonsterElement()
        self.name = ''
        self.hp = 0
        self.attack = 0
        self.defence = 0
        self.DisplayMonsterElement()

     def GenerateMonsterElement(self):
        ElementGen = random.randint(1, 3)
        elements = {1:'Ice', 2:'Fire', 3:'Grass'}
        return elements[ElementGen]

     def DisplayMonsterElement(self):
        print(self.Melement)

def main():
   ThisBattle = monster()
   #monster.Run()

main()

您可以使用 dict 到 select Melement 而不是 if .. elif ..

我整理了方法的调用和声明。

还没有monster.Run()