大家好,我真的是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'
答案 0 :(得分:0)
我将在这里进行一个疯狂的猜测:如果您在Jupyter Notebook中导入模块,然后对其进行修改并尝试再次导入,Python会检测到该模块已被导入,因此不会更新您的模块。 解决方案是每次您要重新导入模块时重新启动内核。