为什么 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()
。
我正在尝试编写一个程序,使用 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()
。