我正在尝试阅读“用 Python 和 Pygame 制作游戏”一书,在尝试第一个 Blankgame.py 示例时收到此错误消息。当我使用时
from pygame.locals import *
我没有遇到任何错误
if event.type == QUIT:
但是。如果我尝试过
if event.type == pygame.locals.QUIT
没有一开始就导入并执行,就出现了错误。有人可以帮我解决这个问题,并告诉我预先导入和使用 QUIT 的完整常量路径引用之间的区别吗?
谢谢。
最佳答案
from pygame.locals import *
这会将“pygame.locals”中的所有内容导入到您的本地命名空间中。因此,您可以访问该模块的成员,就好像它们位于您自己的当前命名空间中一样。因此,您不应在调用前加上 pygame.locals 前缀。如果您使用 pygame.locals.QUIT 之类的前缀进行调用,则会出现错误。
import pygame.locals
这将从“pygame.locals”加载所有内容,但不会加载到您的命名空间中。您仍然需要在调用前加上“pygame.locals”前缀,例如 pygame.locals.QUIT。
使用 pygame.locals.QUIT 而不使用上述导入将会导致错误,因为它从未加载模块 pygame.locals
关于python - 属性错误: 'module' object has no attribute 'locals' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25827987/