我仍然在学习python,并且在玩pygame之后,我发现我重新导入了我导入的模块,这些模块是我已经导入的。回忆在模块中导入
import pygame
例如我在一个单独的文件中有一些类,但我也必须将pygame导入到该文件中以供它们工作。它实际上是两次导入代码吗?它会减慢我的程序吗?或者它只是从缓存中提取相同的导入,但如果这样做,为什么我需要再次导入它?
在lisp中是否有像(加载)那样的代码就像它是主文件的一部分那样引入代码?
谢谢
我仍然在学习python,并且在玩pygame之后,我发现我重新导入了我导入的模块,这些模块是我已经导入的。回忆在模块中导入
import pygame
例如我在一个单独的文件中有一些类,但我也必须将pygame导入到该文件中以供它们工作。它实际上是两次导入代码吗?它会减慢我的程序吗?或者它只是从缓存中提取相同的导入,但如果这样做,为什么我需要再次导入它?
在lisp中是否有像(加载)那样的代码就像它是主文件的一部分那样引入代码?
谢谢
明白了!
好吧,我找到了我要找的东西。我刚刚发现它不得不重新导入我已经导入的代码,特别是当文件不是库或其他东西时,只是分割代码。 在这里找到:http://norvig.com/python-lisp.html
execfile("file.py")
完全回答我的问题。它解析一个文件并执行其中的代码。使用它我能够取出额外的进口报表,并且运行完美:D执行文件()``也实际*执行*代码,而第二次导入不会执行*代码D
后续进口拉离sys.modules
缓存模块引用。您需要导入才能将模块添加到当前名称空间/作用域。
当Python导入模块时,它首先检查模块注册表(
sys.modules
)以查看模块是否已经导入。如果是这样的话,Python会按原样使用现有的模块对象。
。 – 2010-05-29 18:12:11