【问题标题】:Class has no attribute, even though set类没有属性,即使设置
【发布时间】:2016-08-19 12:12:26
【问题描述】:

我一直在用python制作一个以龙与地下城为主题的游戏,并且一直在为玩家和地图使用类。

但是当试图从地图类中获取一个数组时,它告诉我没有由此命名的属性,但它肯定已经设置了。

这是地图类

class Map_1:

    def __init__ (self):
        self.Title = "Default"
        self.Spawn = [4, 2]
        self.map = [...]

然后我继续尝试使用它

Map = Map_1
current_pos = Map.Spawn

现在通常这将嵌入另一个类中,但我尝试通过将其取出并在没有类的情况下运行它来查看它是否是类冲突,但我仍然收到错误。 这是我的错误

class Map_1 has no attribute 'Spawn'

【问题讨论】:

  • 您设置的是实例属性,而不是类属性。

标签: python python-2.7 class oop


【解决方案1】:

你的 class 没有这样的属性 no。只有类的 instances 具有该属性,但您永远不会创建一个。

通过调用类创建一个实例:

Map = Map_1()  # call the class
current_pos = Map.Spawn

【讨论】:

  • 该死的,谢谢你,我看起来像个菜鸟。但至少它提醒您仔细检查语法,再次感谢。
【解决方案2】:

为了详细说明 Martijn 的答案,您在“Map_1”之后缺少“()”。 当你说

Map = Map_1

这需要:

Map = Map_1()

【讨论】:

  • 谢谢,如果您不太了解术语,您的回答更容易理解
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-09
  • 2012-10-20
  • 2017-12-10
  • 2020-05-19
  • 1970-01-01
  • 2013-07-16
相关资源
最近更新 更多