我导入了许多不同的脚本,所以在我的文件顶部,它被import语句弄得乱七八糟,例如:
from somewhere.fileA import ...
from somewhere.fileB import ...
from somewhere.fileC import ...
...有没有办法将所有这些文件移动到其他地方,然后我所要做的就是导入该文件,这样它就只是一次干净的导入?
发布于 2011-06-02 03:11:31
您正在进行global include file mistake again。尽管只有一个模块导入了所有模块(而不是所有模块都导入了全局模块),但剩下的一点是,如果有充分的理由将所有这些模块都收集到一个通用名称下,那就没问题。原因是文档。如果我打开你的文件,只看到一次导入,我没有得到任何关于导入的内容和它来自哪里的信息。另一方面,如果我有进口清单,我一眼就知道什么是需要的,什么是不需要的。
另外,我假设你正在犯另一个重要的错误。当你说
from somewhere.fileA import ...
from somewhere.fileB import ...
from somewhere.fileC import ...例如,我假设您正在导入一个类,如下所示
from somewhere.fileA import MyClass这是错误的。这种替代解决方案要好得多
from somewhere import fileA
<later>
a=fileA.MyClass()为什么?有两个原因:第一,名称空间。如果有两个模块具有名为MyClass的类,则会发生冲突。第二,文档。假设您使用第一个选项,并且我在您的代码中发现以下行
a=MyClass()现在我不知道这个MyClass是从哪里来的,我将不得不遍历您的所有文件才能找到它。通过使用模块名称限定它,我可以立即了解它的来源,并立即通过/search找到来自fileA模块的内容在您的程序中使用的位置。
最后注意:当你说"fileA“的时候,你正在做一个错误的事情。有模块(或包),而不是文件。模块映射到文件,包映射到目录,但它们也可能映射到egg文件,您甚至可以创建一个根本没有文件的模块。这是概念的命名,这是一个横向问题。
发布于 2011-06-02 02:53:39
当然有,只需在您的主文件所在的目录中创建一个名为myimports.py的文件,并将您的导入放在那里即可。然后,您可以简单地在您的主脚本中使用from myimports import *。
https://stackoverflow.com/questions/6206204
复制相似问题