我正在尝试编写一个程序,该程序使用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
也许你打算写这样的:
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。