AttributeError:builtin_function_or_method'对象没有属性'top'

时间:2014-06-04 16:07:05

标签: python pygame

以下是代码:

class Enemies():
    def __init__(self):
        self.list = []
        self.number= random.randrange(8)
        self.image= pygame.image.load("C:/Users/Aitor/Desktop/Odin.png")
        self.rect= self.image.get_rect
        self.run_across= 0 #El numero que recorrera la lista

        for x in range(self.number):
            self.list.append(self.rect)
            self.list[self.run_across].top= random.randrange(20,50)
            self.list[self.run_across].left= random.randrange(20,50)
            self.run_across += 1

        self.run_across= 0

错误在:self.list[self.run_across].top= random.randrange(20,50) 该代码应该在列表中保存一些具有随机尺寸但具有相同图像的区域。我不知道为什么会出现这个错误。

1 个答案:

答案 0 :(得分:1)

self.rect设置为函数对象:

self.rect= self.image.get_rect

您随后将其添加到list属性:

for x in range(self.number):
    self.list.append(self.rect)

这是例外引用的builtin_function_or_method类型;该方法是用C语言实现的。也许你的意思是调用它?

self.rect = self.image.get_rect()