是否自动导入给定文件夹中的所有Python文件?

Phi*_*hil 4 python python-module python-2.x python-2.7

我对Python还是比较陌生,我尝试学习“ Pythonic”的做事方式来为Python开发打下坚实的基础。也许我想实现的根本不是Python,但我仍在寻找解决该问题的“正确”方法。

我正在构建一个应用程序,为此我正在为其创建模块。我只是注意到我的一个模块有7个不同的.py Python文件,都导入了3种不同的东西。因此,所有这些文件共享这些导入。

我尝试删除它们,然后将这些导入插入到文件夹中的空init .py中,但没有成功。

如果可能的话,由于所有这些模块文件都需要这些导入,因此我不希望将它们逐个导入每个文件中。

我该怎么做才能执行普通导入?

非常感谢您,我非常感谢您的帮助。

Mar*_*one 5

正如PythonZen所说,“显式优于隐式”,这是一个很好的例子。

在导入中显式列出模块的依赖项非常有用,这意味着可以通过简单的文本搜索将文件中的每个符号追溯到其起源。例如,如果您some_identifier在文件中进行搜索,则可以在文件中找到一个定义,或者from some_module import some_identifier。直接引用会更加明显some_module.some_identifier。(这也是您不应该这样做的原因之一from module import *。)

在不丢失上述属性的情况下,您可以做的一件事是将三个共享模块导入到第四个模块中:

#fourth.py
import first
import second
import third
Run Code Online (Sandbox Code Playgroud)

然后...

#another.py
import fourth

fourth.first.some_function()
#etc.
Run Code Online (Sandbox Code Playgroud)

如果您不能忍受(毕竟确实会使调用更加冗长),那么重复三个导入确实可以。