【问题标题】:AttributeError: 'class' object has no attribute 'rect'AttributeError:“类”对象没有属性“矩形”
【发布时间】:2016-03-29 14:45:16
【问题描述】:

我有这门课:

class Comet(pygame.sprite.Sprite):
def ___init___(self):
    super().__init__()
    self.image = pygame.Surface((100,250))
    self.image.fill(cometL)
    self.rect = self.image.get_rect()
    self.rect.y = 800
    self.rect.x = 100
def update(self):
    self.rect.y -= 1+2*speed
def reset(self):
    self.rect.x = randint(0,700)
    self.rect.y = randint(1000,2000)

我在这里尝试使用它:

    comet1  = Comet()
    comet1.rect.x = 100
    comet1.rect.y = 800
    comets.add(comet1)

但是当我遇到这个错误时:

文件“”,第 36 行,在 comet1.rect.x = 100

AttributeError: 'comet' 对象没有属性 'rect'

尽管课程有(我认为,我对课程有点陌生)

【问题讨论】:

  • 使用__init__,而不是___init___(你的有两个额外的下划线)

标签: python class pygame


【解决方案1】:

您对__init__ 的定义是错误的。您使用了三个下划线 (___init___),因此在类的实例化过程中不会调用此函数。

这意味着self.rect = self.image.get_rect() 行没有被调用,因此没有rect 属性。

【讨论】:

  • 谢谢。我知道它必须是这样的小东西。
猜你喜欢
  • 2014-04-03
  • 1970-01-01
  • 1970-01-01
  • 2021-09-05
  • 2016-05-09
  • 2015-05-07
  • 2020-04-24
  • 1970-01-01
相关资源
最近更新 更多