'Event' 对象在 pygame 中没有属性 'get'

'Event' object has no attribute 'get' in pygame

所以我正在与

合作

pygame==1.9.6 Python 3.8.2

from pygame import *
init()
running == True
while running:
    for event in event.get():
        if event.type == QUIT:
            running = False

即使只有这段代码也会给我错误:

Traceback (most recent call last):   File "main.py", line 77, in
<module>
    for event in event.get(): AttributeError: 'Event' object has no attribute 'get'

screen.blit(args)、image.load(args)、screen.fill(args) 等其他东西完美无缺

pygame.event 被替换为任何 event.get() 在你的 for 循环中返回,因为你将它分配给 event。您需要使用不同的名称。您也可以使用 import pygame 而不是 from pygame import * 来避免此问题。

问题是由于导入方式导致命名空间冲突 pygame:

from pygame import *

您正在将 pygame 模块中的所有方法和属性名称直接导入到与您的程序相同的名称空间中。这通常不是好的做法,可能会导致您遇到的冲突,您尝试在本地定义的 event 变量与现有的 event 来自 pygame 模块的变量。相反,您应该像这样导入它:

import pygame

然后通过将模块名称添加到 pygame 模块来访问这些项目。像这样:

    for event in pygame.event.get():

如果你这样做,你可以避免两个 事件相互混淆。