Python 3.x TypeError:draw()缺少1个必需的位置参数:';赢';

Python 3.x TypeError:draw()缺少1个必需的位置参数:';赢';,python-3.x,pygame,Python 3.x,Pygame,由于某种原因,当我运行这个程序时,我得到了一个错误,即rocket.draw(win)在参数“win”明显存在时缺少该参数 win在程序顶部定义 draw()需要在rocket实例上调用,而不是类本身: class rocket(object): def __init__(self, x, y): self.image = pygame.image.load('sprites/spaceship.png') self.x = x self.y = y self.w

由于某种原因,当我运行这个程序时,我得到了一个错误,即
rocket.draw(win)
在参数“win”明显存在时缺少该参数

win
在程序顶部定义

draw()
需要在
rocket
实例上调用,而不是类本身:

class rocket(object):
def __init__(self, x, y):
    self.image = pygame.image.load('sprites/spaceship.png')
    self.x = x
    self.y = y
    self.width = 72
    self.height = 72
    self.speed = 5
    self.angle = 0

def draw(self, win):
    win.blit(char, (self.x,self.y))

def updateGameWindow():
win.blit(bg, (0,0))
rocket.draw(win)
pygame.display.update()
在上面代码的第一行中,您正在创建rocket类的实例,在第二行中,您正在该实例上调用
draw()
方法,其中实例本身作为
self
参数隐式传递


在您的示例代码中,您从这一行
rocket.draw(win)
中得到一个错误,因为您在类本身而不是实例上调用
draw()
,因此实例不会作为
self
参数传递,而是为
self
参数传递
win
参数,因为现在没有预期的
win
参数通过,所以一切都崩溃了

我已经试着解决这个问题大约一个小时了哈哈我不敢相信我忘了举个例子。。。非常感谢。
rocket_instance = rocket(some_x, some_y)
rocket_instance.draw(win)