2015-06-22 4 views
0
class Item(pygame.sprite.Sprite): 
    __metaclass__ = ABCMeta 

    def __init__(self, pos_x, pos_y, image_pass): 
     self.image = image_pass 
     self.rect = self.image.get_rect() 
     self.rect.x = pos_x 
     self.rect.y = pos_y 

    def draw(self, main_surface): 
     main_surface.blit(self.image, (self.rect.x, self.rect.y)) 


class Torch(Item): 
    def __int__(self, pos_x, pos_y): 
     factor = 5 
     self.battery = 100 
     self.brightness = 2 
     self.torch_image = resize(pygame.image.load("Torch.png"), factor) 

     super(Torch, self).__init__(pos_x, pos_y, self.torch_image) 

Сообщение об ошибке: TypeError: INIT() отсутствует 1 требуется позиционная аргумент: 'image_pass'Python производные классы Недостающие Один Требуемый Позиционная аргумент

Я звоню объект факелом: факел = Факел (90,450)

И я пытаюсь загрузить изображение, чтобы перейти к базовому классу ... Пункт. В классе Torch я назвал конструктор базового класса и передал ему x и y, заданные определением объекта. Но всякий раз, когда я пытаюсь передать «self.torch_image», он выдает сообщение об ошибке выше.

Resize() не является проблемой, так как он был протестирован в другом месте и работает.

Спасибо, много.

ответ

0

У вас есть опечатка в вашем классе Torch, она должна быть __init__, а не __int__. Из-за этого вместо этого наследуется метод унаследованного __init__Item.