自我属性不起作用python

jca*_*der 0 python oop pygame compiler-errors python-3.x

我正在尝试创建一个简单的面向对象的乒乓球游戏。我有一个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'
Run Code Online (Sandbox Code Playgroud)

程序:

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)
Run Code Online (Sandbox Code Playgroud)

我查了错误,没有其他帖子有帮助。任何帮助表示赞赏!谢谢,JC

dan*_*dee 6

创建对象时缺少括号:

player1 = Player()
Run Code Online (Sandbox Code Playgroud)

这意味着您只是将 player1 分配给 Player 并尝试像静态方法一样调用您的方法......所以 self 不会为您传递。

player1.create_paddle(player1, 30, 180, 15, 120)
Run Code Online (Sandbox Code Playgroud)

这就是python在幕后为您所做的。