开发者社区> 问答> 正文

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

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

NAMEERROR第9行,“ GetMonsterElement”未定义

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

 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()

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 15:53:20 405 0
1 条回答
写回答
取消 提交回答
  • 也许你打算写这样的:

    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来选择Melement而不是if .. elif ..

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

    还没有monster.Run()

    回答来源:stackoverflow

    2020-03-24 15:53:31
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
继承与功能组合 立即下载
低代码开发师(初级)实战教程 立即下载