这是我的代码:

类:

class Player(object):
"""Base class for the player"""
def __init__(self, name, armour, attack):
    self.name = name
    self.armour = armour
    self.attack = attack
class Ned(Player):
    """The main player"""
    def __init__(self):
        super(Ned, name="Ned", armour=10, attack=3).__init__()


导致问题的原因:

entities.Ned.attack += 3


运行此命令时,我得到:

AttributeError: type object 'Ned' has no attribute 'attack'


所以我不明白这里发生了什么。我使用import entities导入,然后使用entities.Ned...,所以我相当确定这与文件加载无关。所有缩进都是正确的(这是该网站上两个AttributeError的答案),并且我确保所有拼写都正确。有人知道会发生什么吗?我发现的任何答案都行不通或太具体而无法在我的情况下使用。谢谢。

最佳答案

Player__init__函数没有正确缩进。您应该在块中再添加4个空格/ \ t。

您的超级定义有误。这是一个适当的选择:

super(Ned, self).__init__(name="Ned", armour=10, attack=3)


您必须先创建一个类对象才能使用它,因此应将其调用为:

ned_object = entities.Ned()
ned_object.attack += 3

09-12 05:52