为什么这个方法不能被类识别?

2024-10-01 00:33:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图编写一个程序,用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()

Tags: self程序maindefrandomoopelifmonster
1条回答
网友
1楼 · 发布于 2024-10-01 00:33:58

也许你是想写这个:

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

相关问题 更多 >