Python 我有一个争论的问题,我可以';我不明白为什么?
我正在和一些班级合作,试图写一个小游戏。我创建了一个在屏幕上移动对象的方法,并添加了键绑定 我预计正方形会移动,但它只是给出了一个错误。你能解释一下为什么它会给我这个错误吗 代码: 我收到这个错误:Python 我有一个争论的问题,我可以';我不明白为什么?,python,class,pygame,Python,Class,Pygame,我正在和一些班级合作,试图写一个小游戏。我创建了一个在屏幕上移动对象的方法,并添加了键绑定 我预计正方形会移动,但它只是给出了一个错误。你能解释一下为什么它会给我这个错误吗 代码: 我收到这个错误: Traceback (most recent call last): File "Pygame.py", line 73, in <module> if key_press[pygame.K_RIGHT]:Rectangle.move_right() TypeError:
Traceback (most recent call last):
File "Pygame.py", line 73, in <module>
if key_press[pygame.K_RIGHT]:Rectangle.move_right()
TypeError: move_right() takes 0 positional arguments but 1 was given
回溯(最近一次呼叫最后一次):
文件“Pygame.py”,第73行,在
如果按[pygame.K_RIGHT]:Rectangle.move_RIGHT()
TypeError:move_right()接受0个位置参数,但给出了1个
我不知道为什么 矩形是一个类,向右移动是该类的一个方法。因此,您必须将其自身作为参数传递。所有这些方法
def move_up():
def move_down():
def move_right():
def move_left():
实际上是类rectangle的方法,因此所有这些方法都需要“self”参数,您必须编辑它们以:
def move_up(self):
self.y = self.y + 3
def move_down(self):
self.y = self.y - 3
def move_right(self):
self.x = self.x + 3
def move_left(self):
self.x = left.x - 3
您需要将
self
作为参数传递给move_right()
,因此move_right(self)
需要注意的是,类通常以大写字母开头:CamelCase
,引用对象的名称将以小写字母开头,并用下划线分隔:snake_case
。因此,Rectangle
和Rectangle
应该交换。而且shape
应该是shape
。看见
def move_up(self):
self.y = self.y + 3
def move_down(self):
self.y = self.y - 3
def move_right(self):
self.x = self.x + 3
def move_left(self):
self.x = left.x - 3