AttributeError:'builtin_function_or_method'对象没有'top'属性
这里是代码:
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 个回答
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()