导入包含'import'命令的模块有什么优点或缺点?



如果我要创建一个称为imp_mod.py的模块,并且内部包含我经常使用的所有(主观使用的)相关模块。

将此模块导入我的主要程序,允许我访问imp_mod.py中包含的导入?

如果是这样,这会带来哪些缺点?

我猜我的主要优势将是减少导入的时间,即使仅保存了几秒钟...

是的,它可以允许您访问它们。如果将这些导入放在imp_mod.py中:

from os import listdir
from collections import defaultdict
from copy import deepcopy

然后,您可以在另一个文件中进行此操作,例如myfile.py

import imp_mod
imp_mod.listdir
imp_mod.defaultdict
imp_mod.deepcopy

您在减少进口时间的情况下是错误的,因为发生的情况是相反的。Python将需要导入imp_mod,然后之后导入其他模块,而如果您在myfile.py本身中导入这些模块,则不需要第一个导入。如果您在另一个文件中进行相同的导入,它们将已经在缓存中,因此在下一个导入中几乎没有时间。

真正的劣势是较少的可读性。例如,谁看着imp_mod.listdir,都会问自己,这种方法是什么,以及为什么它具有与os模块的方法相同的名称。当他不得不打开imp_mod.py只是为了发现这是相同的方法时,他可能不会很高兴。我不会。

正如Lucasnadalutti所述,您可以通过导入模块来访问它们。

在优势方面,它可以使您的主要程序不关心导入的何处,如果imp_mod处理所有导入,则随着您的程序变得更加复杂,并且开始包含更多的名称空间,此方法可以获得更多的方法凌乱的。您可以通过在目录中使用__init__.py来处理以执行类似操作的导入来开始处理一些事情,但是随着事情变得更加复杂,我觉得它会增加一些更复杂的功能。我宁愿知道一个模块来自哪里。

最新更新