我正在尝试创建一个简单的面向对象的乒乓球游戏。我有一个Player
对象和一个方法(create_paddle
)。当我创建Player
的实例并调用create_paddle
方法时,它会给我以下错误:
Traceback (most recent call last):
File "C:\Users\jerem\Documents\python_programs\pong.py", line 30, in <module>
player1.create_paddle(30, 180, 15, 120)
TypeError: create_paddle() missing 1 required positional argument: 'h'
程序:
class Player:
def create_paddle(self, x, y, w, h):
pygame.draw.rect(surface, white, (x, y, w, h))
player1 = Player
player1.create_paddle(30, 180, 15, 120)
我查了一下错误,没有其他帖子有帮助。 任何帮助表示赞赏! 谢谢,JC
答案 0 :(得分:4)
您在创建对象时缺少括号:
player1 = Player()
这意味着您只是将player1分配给玩家并尝试像静态方法一样调用您的方法....所以自我并没有为您传递。
player1.create_paddle(player1, 30, 180, 15, 120)
这就是python在幕后为你做的事情。