如何在python中解决此AttributeError问题?

时间:2018-08-10 07:57:46

标签: python

大家好,我真的是python新手,正在尝试构建一个简单的RPG游戏。创建魔术拼写系统时遇到问题。

除我尝试打印由魔术拼写系统造成的损坏点外,所有其他操作均有效。

    from classes.game import Person

    # Create magic
    magic = [{"name": "Fire", "cost": 10, "dmg": 60}, 
     {"name": "Thunder", "cost": 10, "dmg": 60}, 
     {"name": "Blizzard", "cost": 10, "dmg": 60}]

    # Instantiate people
    player = Person(460, 65, 60, 34, magic)

    print(player.generate_dmg()) # This Works
    print(player.generate_spell_dmg(0)) # This fails

人员分类:

    import random

    class Person:
        def __init__(self, hp, mp, atk, defense, magic):
            self.max_hp = hp
            self.hp = hp
            self.max_mp = mp
            self.mp = mp 
            self.atkl = atk - 10
            self.atkh = atk + 10
            self.defense = defense
            self.magic = magic 
            self.action = ["Attack", "Magic"]

        def generate_dmg(self):
            return random.randrange(self.atkl, self.atkh)

        def generate_spell_dmg(self, i):
            ml = self.magic[i]["dmg"] - 5
            mh = self.magic[i]["dmg"] + 5 
            return random.randrange(ml, mh)

我遇到以下错误:

     55
    -------------------------------------------------------------------
    AttributeError                            
    Traceback (most recent call last)
    <ipython-input-5-784d54c9b5c2> in <module>()
          8 print(player.generate_dmg())
          9 
    ---> 10 print(player.generate_spell_dmg(0))
         11 

    AttributeError: 'Person' object has no attribute 'generate_spell_dmg'

1 个答案:

答案 0 :(得分:0)

我将在这里进行一个疯狂的猜测:如果您在Jupyter Notebook中导入模块,然后对其进行修改并尝试再次导入,Python会检测到该模块已被导入,因此不会更新您的模块。 解决方案是每次您要重新导入模块时重新启动内核