Python 3.x python蛇游戏中的属性错误,这意味着什么?

Python 3.x python蛇游戏中的属性错误,这意味着什么?,python-3.x,attributes,pygame,Python 3.x,Attributes,Pygame,我已经用pythonidle创建了一个蛇游戏,但是第24行有一个属性错误,我不太确定这意味着什么。有人知道吗?游戏开始工作,因为它显示了我的矩形和屏幕,但它只是一个黑色的窗口。不知道我哪里出了问题。。。。这是我的a级课程作业 from typing import List, Tuple import pygame FPS = 10 WINDOW_WIDTH = 900 #how big the window is going to be WINDOW_HEIGHT = 900 cla

我已经用pythonidle创建了一个蛇游戏,但是第24行有一个属性错误,我不太确定这意味着什么。有人知道吗?游戏开始工作,因为它显示了我的矩形和屏幕,但它只是一个黑色的窗口。不知道我哪里出了问题。。。。这是我的a级课程作业

from typing import List, Tuple
import pygame

FPS = 10
WINDOW_WIDTH = 900    #how big the window is going to be
WINDOW_HEIGHT = 900


class Snake(object):
    WIDTH = 40              #how big ther snakes body starts off
    HEIGHT = 40

    def __init__(self):
        self.pos_a = 1
        self.pos_b = 1   #position it starts in

        self.vel_a = 0
        self.vel_b =0

    def update(self, events: List[pygame.event.Event]) -> None:
        self.pos_a += self.vel_a
        self.pos_a += self.vel_b

        self.vel_a, self.vel_b = self.handle_mov(events)

    def draw(self,screen: pygame.Surface):
        pygame.draw.rect(               #what colour the snake is 
            screen,
            pygame.color.Color("purple"),
            (
               self.pos_a,
               self.pos_b,
               self.WIDTH,                    #spelt it colour 
               self.HEIGHT,
            ), 0
        )

        def handle_mov(self, events: List[pygame.event.Event]) -> Tuple[int, int]:
            travelling = (self.vel_a, self.vel_b)

            for ev in events:
                if ev.type == pygame.KEYDOWN:
                    if ev.key == pygame.K_UP:
                        travelling = (0, -1)
                    elif ev.key == pygame.K_DOWN:
                        travelling = (0, 1)
                    elif ev.key == pygame.K_LEFT:
                        travelling = (-1, 0)
                    elif ev.key == pygame.K_RIGHT:
                        travelling = (1, 0) 


            return travelling

def run() -> None:
    pygame.init()
    screen = pygame.display.set_mode(
        (WINDOW_WIDTH, WINDOW_HEIGHT), #syntax error on height
        pygame.HWSURFACE

    )
    snakegame_loop(screen)


def snakegame_loop(screen: pygame.Surface) -> None:
    snake = Snake()
    clock = pygame.time.Clock()

    while True:
        events = pygame.event.get()
        handle_quit(events)

        screen.fill(pygame.color.Color("pink"))

        snake.update(events)
        snake.draw(screen)           #the screen color

        pygame.display.update()    #updating all the adjustments added
        clock.tick(FPS)


def handle_quit(events: List[pygame.event.Event]) -> None:
    for ev in events:
        if ev.type == pygame.QUIT:
            exit(0)
        if ev.type == pygame.KEYDOWN and ev.key == pygame.K_ESCAPE:
            exit(0)



run()

请发布一个简单的工作示例并阅读“如何提问”。我们不是来解决你的家庭作业问题的。你必须放弃
handle_mov
方法,因为它目前只在
draw
方法中定义。也许它不是最小的,但至少它是有效的。我没有任何
属性错误
。请添加完整的回溯。您能发布准确的错误消息和引发错误的行吗?好的,这确实没有复制粘贴效果,@skrx是正确的,您必须删除
处理\u mov
一个级别。