我正在尝试创建一个带有通用__init__
值的类,但是其子类需要具有默认值,如下所示:
class Enemy:
def __init__(self, difficulty, power, MaxHP, magic, MaxMP, speed, name):
self.power = power + 2*difficulty
self.HP = self.MaxHP = MaxHP + 5*difficulty
self.magic = magic + 2* difficulty
self.MP = self.MaxMP = MaxMP + 5*difficulty
class Goblin(Enemy):
def __init_(self, difficulty = 1, power = 1, MaxHP = 5, magic = 1, MaxMP = 5, speed = 5, name = "Goblin"):
super(Goblin, self).__init__(self, power, MaxHP, magic, MaxMP, speed, name)
然而,当我尝试创建一个Goblin对象时没有完整的默认值(比如,我只会输入一个难度的值),它告诉我需要全部8个参数,即使其余的已给出默认值。我不能这样做有什么原因或者是我在这里做错了什么吗?
__init__
方法缺少一个下划线。因此,你需要复制并粘贴导致问题的代码以及完整的追踪信息(traceback),Python的追踪信息通常非常有帮助。 - Gary Kerr