例如: main.py:
import pygame
import mycolors
color1 = mycolors.blue
mycolors.py:
import pygame
blue = pygame.Color(0, 0, 255)
我的问题特别关注两个文件中的“导入pygame”。是否真的有必要在需要它的每个模块中导入它? (答案似乎是肯定的,没有它就不会运行。)另外,这实际上是否会被导入两次?这会产生性能影响吗?
答案 0 :(得分:3)
该模块只导入一次,因此您不必担心资源浪费。您可以在sys.modules
中的任何位置查看已导入的所有模块。当模块导入第二个/第三个/等时。您只需获得sys.modules
您必须将其导入两个其他模块的原因是它被添加到其命名空间
这在大型程序中非常重要,因为可能存在许多具有相同名称的模块,因此无论何时导入模块,您都绝不希望在每个其他命名空间中弹出模块
答案 1 :(得分:2)
我不认为这些是你在这里展示的完整源文件。就像现在一样,import pygame
中不需要main.py
,因为您没有在该模块中的任何位置引用它。
至于性能:多次导入同一模块不会有明显的伤害。 “真正的”导入(可能的编译步骤)只发生一次。