AttributeError:'模块'对象没有属性' locals'

时间:2014-09-13 21:41:34

标签: python compiler-errors pygame

我正在尝试阅读这本书"使用Python制作游戏& Pygame的"当我尝试第一个blankgame.py示例时,我收到此错误消息。我用的时候

  

来自pygame.locals import *

我没有错误

  

如果event.type == QUIT:

然而。如果我试过

  

如果event.type == pygame.locals.QUIT

没有在开头导入并执行,发生错误。任何人都可以帮我解决这个问题并告诉我手工导入和使用QUIT的完整常量路径参考之间的区别。

谢谢。

1 个答案:

答案 0 :(得分:1)

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