gpt4 book ai didi

Python:导入 "import file"

转载 作者:太空狗 更新时间:2023-10-29 17:38:36 24 4
gpt4 key购买 nike

我正在导入很多不同的脚本,所以在我的文件顶部,它被导入语句弄得乱七八糟,即:

from somewhere.fileA import ...
from somewhere.fileB import ...
from somewhere.fileC import ...
...

有没有办法将所有这些移动到其他地方,然后我所要做的就是导入该文件,这样它就只是一个干净的导入?

最佳答案

我强烈反对你想做的事情。你正在做 global include file mistake again .尽管只有一个模块导入所有模块(而不是所有模块导入全局模块),但剩下的一点是,如果有正当理由将所有这些模块收集在一个通用名称下,那很好。如果没有理由,那么它们应该作为单独的包含文件保存。原因是文档。如果我打开你的文件,只看到一个导入,我不会得到任何关于导入的内容和来源的信息。另一方面,如果我有进口 list ,我一眼就能知道什么是需要的,什么不是。

另外,我认为您犯了另一个重要错误。当你说

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 来自哪里,我将不得不 grep 遍历所有文件才能找到它。用模块名称限定它使我能够立即了解它的来源,并通过/search 立即找到您的程序中使用了来自 fileA 模块的内容。

最后的注意事项:当你说“fileA”时,你犯了一个错误。有模块(或包),而不是文件。模块映射到文件,包映射到目录,但它们也可能映射到 egg 文件,你甚至可以创建一个根本没有文件的模块。这是概念的命名,是横向的问题。

关于Python:导入 "import file",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206204/

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