在看《Python入门编程》的pygame小游戏《外星人来了》时,发现
TypeError: add() argument after * must be an iterable, not Alien
这个错误,网上找了半天没找出来,有的人说__init__拼写错了,有的说其他,但是仔细检查代码发现这个地方出错了
super().init()
错误中iterable是可迭代的意思,可迭代简单的理解就是可以用for语言进行循环遍历的
class Alien(Sprite):
"""单个外星人类"""
def __init__(self, ai_game):
"""初始化外星人,并设置其初始位置"""
# super().__init__(self)
super().__init__()
self.screen = ai_game.screen
self.image = pygame.image.load('images/alien.bmp')
self.rect = self.image.get_rect()
self.rect.x = self.rect.width
self.rect.y = self.rect.height
self.x = float(self.rect.x)