Объект 'Event' не имеет атрибута 'get' в pygame - PullRequest
1 голос
/ 24 апреля 2020

Так что я работаю с

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 (аргументы), image.load (аргументы), screen.fill (аргументы) и т. Д. c отлично работает

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

pygame.event заменяется тем, что event.get() возвращает в вашем за l oop, так как вы присваиваете ему event. Вам нужно использовать другое имя. Вы также можете использовать import pygame вместо from pygame import *, чтобы избежать этой проблемы.

0 голосов
/ 25 апреля 2020

Проблема в том, что вы столкнулись с пространством имен из-за способа импорта pygame:

from pygame import *

Вы импортируете все методы и имена атрибутов в модуле pygame непосредственно в то же пространство имен, что и ваша программа Как правило, это не очень хорошая практика и может привести к возникновению коллизии, когда переменная event , которую вы пытаетесь определить локально, вступает в конфликт с существующей переменной event из модуля pygame. Вместо этого вы должны импортировать его следующим образом:

import pygame

Затем получить доступ к элементам из модуля pygame, добавив к ним имя модуля. Например:

    for event in pygame.event.get():

Если вы сделаете это таким образом, вы избежите путаницы двух событий .

...