gpt4 book ai didi

python - 在多个地方导入相同的模块

转载 作者:行者123 更新时间:2023-11-30 23:24:29 24 4
gpt4 key购买 nike

所以从效率的角度来看我很好奇。这是如何工作的:

假设我有以下脚本:

#home.py

import os

def homePrinter():
print os.environ["HOME"]

if __name__ == '__main__':
homePrinter()

很简单,我导入模块,然后运行 ​​homePrinter() 命令,该命令运行 os.environ["HOME"]

然后假设我将该脚本保存为 home.py 并从以下脚本中运行它:

#path.py

import os
print os.environ["PATH"]

import home
home.homePrinter()

现在,当我运行 path.py 文件时,它会导入 os,当我导入 home.py 时,它也会导入 os。 python 如何处理同一个模块被导入两次?

最佳答案

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

垃圾邮件.py

print 'this is spam'

输出:

Importing spam
this is spam

Importing spam again

Removing spam from sys.modules and importing again
this is spam

关于python - 在多个地方导入相同的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23405652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com