因此,从效率的角度来看,我很好奇。 Hows做到了这一点:
说我有以下脚本:
#home.py
import os
def homePrinter():
print os.environ["HOME"]
if __name__ == '__main__':
homePrinter()
很简单,我导入模块然后运行运行homePrinter()
的{{1}}命令。
但是我们可以说我将该脚本保存为os.environ["HOME"]
并在以下脚本中运行它:
home.py
现在,当我运行#path.py
import os
print os.environ["PATH"]
import home
home.homePrinter()
文件时,它会导入操作系统,当我导入path.py
时,它也会导入操作系统。 python如何处理导入两次的同一模块?
答案 0 :(得分:3)
Python将每个导入放在sys.modules
中,以便下次尝试导入时,只需从sys.modules
获取导入的模块,而不是重新读取文件。
以下是一个例子:
<强> eggs.py 强>
import sys
print 'Importing spam'
import spam
print
print 'Importing spam again'
import spam
print
print 'Removing spam from sys.modules and importing again'
del sys.modules['spam']
import spam
<强> spam.py 强>
print 'this is spam'
输出:
Importing spam
this is spam
Importing spam again
Removing spam from sys.modules and importing again
this is spam