我对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 ?
答案 0 :(得分:1)
这是调用超类初始化方法。据推测,Sprite
做了一些初始化,你需要在子类中进行初始化,而在Python中你需要明确地调用它。
但是,通常情况下,您可以通过拨打super
:
super(Creep, self).__init__()