__init__的用途是什么?

时间:2013-05-01 08:04:49

标签: python class initialization

我对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

1 个答案:

答案 0 :(得分:1)

这是调用超类初始化方法。据推测,Sprite做了一些初始化,你需要在子类中进行初始化,而在Python中你需要明确地调用它。

但是,通常情况下,您可以通过拨打super

来完成此操作
super(Creep, self).__init__()