.locals import * 和 import local 有什么区别

What is the difference between .locals import * and import local

我正在为 flappy bird 编写代码,我正在看一个关于碰撞的教程,他们使用了:

from pygame.locals import *

他们为什么不直接使用:

from pygame import local

有什么区别,它如何更改代码?它是导入所有该库还是仅导入特定位。正如我所料,您会为此使用 import pygame?

举个例子来理解

我有一个名为 myApp 的目录,里面有 2 个文件

~app.py ~helper.py

在helper.py我的代码是

abc1 = 'hi'
abc2 = 'bye

在app.py我的代码是

from helper import *
print(abc1)
print(abc2)

所以通过使用 from helper import * 我可以从它导入所有变量和函数但是如果我使用 from helper import abc1 它只导入 abc1 值

第一个从 pygame.locals 导入所有内容。然后你可以 访问 pygame.locals 的元素而不用前缀 模块名称。

from pygame.locals import *
print(K_a)  # 97 = ascii code of 'a'

第二个从 pygame 导入模块 locals。你可以 基本上访问相同的东西,但现在你必须使用模块 名称作为前缀。

from pygame import locals
print(K_a)  # NameError: name 'K_a' is not defined
print(locals.K_a)  # 97 = ascii code of 'a'

第二种形式更可取,因为那样你就没有风险 隐藏 pygame.locals 中的定义如下:

from pygame.locals import *
K_a = 21  #  hide K_a from pygame.locals