3

我对python相当陌生,我正在读一本关于用pygame创建游戏的书。我在书中遇到了这段代码。我不明白为什么Sprite.__init__(self)是必要的。我已经运行了带有注释的代码,它的运行方式相同。

class Creep(Sprite):

    def __init__(   
            self, screen, img_filename, init_position, 
            init_direction, speed)

        Sprite.__init__(self)

        self.screen = screen
        self.speed = speed
        self.base_image = pygame.image.load(img_filename).convert_alpha()
        self.image = self.base_image

任何人都知道为什么会出现这种情况以及为什么人们称之为init

4

1 回答 1

1

这是调用超类初始化方法。据推测,Sprite您在子类中也需要进行一些初始化,而在 Python 中您需要显式调用它。

但是,通常情况下,您会通过调用super

super(Creep, self).__init__()
于 2013-05-01T08:40:27.050 回答