Python 在模块中调用导入

Python 在模块中调用导入,python,pygame,feedback,Python,Pygame,Feedback,我还在学习python,在玩了pygame之后,我注意到我正在导入模块中的东西,我正在导入我已经导入的东西 import pygame 例如,我在一个单独的文件中有一些类,但我还必须将pygame导入到该文件中,以使它们正常工作。它真的导入代码两次吗?它会减慢我的程序吗?或者它只是从缓存中提取相同的导入,但如果它这样做了,为什么我需要再次导入它 lisp中是否有类似于(load)的东西只是将代码作为主文件的一部分拉入 谢谢后续导入从sys.modules中提取缓存的模块引用。您需要导入以将模块

我还在学习python,在玩了pygame之后,我注意到我正在导入模块中的东西,我正在导入我已经导入的东西

import pygame
例如,我在一个单独的文件中有一些类,但我还必须将pygame导入到该文件中,以使它们正常工作。它真的导入代码两次吗?它会减慢我的程序吗?或者它只是从缓存中提取相同的导入,但如果它这样做了,为什么我需要再次导入它

lisp中是否有类似于(load)的东西只是将代码作为主文件的一部分拉入


谢谢

后续导入从
sys.modules
中提取缓存的模块引用。您需要导入以将模块添加到当前命名空间/范围

当Python导入模块时,它首先检查模块注册表(
sys.modules
)以查看模块是否已导入。如果是这种情况,Python将按原样使用现有的模块对象


    • 明白了
      好吧,我找到我要找的了。我只是觉得重新导入我已经导入的代码很笨拙,尤其是当文件不是库或其他东西时,只是拆分代码。 在这里找到它:

      完美地回答了我的问题。它解析文件并执行其中的代码。使用它,我可以取出额外的导入语句,它运行得非常完美:D

      execfile()
      也实际执行代码,而第二次导入则不执行。
      execfile("file.py")