TypeError求助:Sprite.__init__()收到意外关键字参数'position'
问题解决:TypeError: Sprite.init() got an unexpected keyword argument 'position'
问题根源
你的Tile类构造方法名写错了:把__init__写成了__int__。Python中类的构造方法必须是__init__,当你定义__int__时,它不会被当作构造方法执行,实例化Tile时会直接调用父类pygame.sprite.Sprite的__init__方法,而父类的__init__不接受position参数,因此触发报错。
修复代码
修改Tile类的构造方法名:
class Tile(pygame.sprite.Sprite): # 把__int__改成__init__ def __init__(self, position, surface, groups): super().__init__(groups) self.image = surface self.rect = self.image.get_rect(topleft=position)
验证说明
你参考的示例代码中肯定使用的是__init__,只是你在编写时误写成了__int__。修改后,自定义的构造方法会被正确调用,position参数会被Tile类处理,不会传递给父类的__init__方法,报错即可解决。
内容的提问来源于stack exchange,提问作者Ru0_xtine
相关产品推荐
相关产品推荐

