“import foo.bar”和“import foo”之间的区别?

A. *_*nda 2 python python-import

我刚刚发现当我这样做时

import pygame.joystick
Run Code Online (Sandbox Code Playgroud)

我不仅可以访问joystick,还display可以访问 ,例如我可以

pygame.display.init()
Run Code Online (Sandbox Code Playgroud)

就像我只是简单地导入了pygame.

有什么不同?

Mar*_*ers 5

发生的事情是导入pygame.joystick会触发额外的导入;无论是pygame包装本身,或pygame.joystick,或任何一种pygame.*这两个模块导入模块,碰巧进口pygame.display的地方。

因此,您现在可以参考的事实pygame.display是实现细节的意外。您可能无法在以后的版本中使用(例如,如果项目不再需要导入pygame.display来加载pygame.joystick)。

最好在您自己的项目中坚持显式导入。