AttributeError:类型对象'Ned'没有属性'攻击'?

时间:2015-06-05 23:30:20

标签: python class oop super attributeerror

这是我的代码:

类:

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...,所以我很确定它与文件加载无关。所有缩进都是正确的(这是本网站上两个AttributeErrors的答案),我确保所有内容拼写正确。任何人都知道可能会发生什么?我找到的任何答案要么不起作用,要么太具体,无法在我的案例中工作。感谢。

1 个答案:

答案 0 :(得分:1)

Player__init__函数未正确缩进。你应该在块中添加另外4个空格/ \ t。

您的超级定义错误。这是一个合适的:

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

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

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