在init文件中导入python模块

在init文件中导入python模块,python,init,python-module,Python,Init,Python Module,我有如下结构中的python脚本: Folder: -main.py SubFolder: -file1.py -file2.py -filen.py -__init__.py file1有一个模块,让我们称它为“module1()”和一个变量“variable1” 文件2有“module2()”和“variable2”等 到目前为止,它工作得很好,我采用了这种方式: 大体上: from subFolder imp

我有如下结构中的python脚本:

Folder:
    -main.py
    SubFolder:
        -file1.py
        -file2.py
        -filen.py
        -__init__.py
file1有一个模块,让我们称它为“module1()”和一个变量“variable1”

文件2有“module2()”和“variable2”等

到目前为止,它工作得很好,我采用了这种方式:

大体上:

from subFolder import file1, file2
file1.module1()
file2.module2(file1.variable1)

file1.variable1
但是由于子文件夹中有很多文件,我想让它更干净、更优雅。 我尝试在init.py文件中写入此文件

from file1 import module1
from file2 import module2
etc
然后大体上:

 import subFolder as sf
 sf.module1()
 sf.module2(sf.variable1)  <--
将子文件夹作为sf导入
sf.module1()

sf.module2(sf.variable1)您需要显式导入它,但是由于您提到您的“子文件夹”中有很多模块,我建议您使用 因此,您可以键入:

from subFolder import *
它将导入您在
\uuuuuuuuuuuuuuuuuuuuuuuuu.py
中指定的所有内容

更多细节和示例请参见@alec thomas的答案

优点:

  • 无需明确指定每个模块、函数或变量
  • 一次导入就可以为您带来所需的一切
缺点:

  • 每次添加、重命名或删除子模块中的内容时,您必须记住更新
    \uuuuuu all\uuuuu
  • 随着时间的推移,一旦你有了很多子模块,你就不清楚到底要导入什么了

您需要显式导入它,但由于您提到您的“子文件夹”中有很多模块,我建议您使用 因此,您可以键入:

from subFolder import *
它将导入您在
\uuuuuuuuuuuuuuuuuuuuuuuuu.py
中指定的所有内容

更多细节和示例请参见@alec thomas的答案

优点:

  • 无需明确指定每个模块、函数或变量
  • 一次导入就可以为您带来所需的一切
缺点:

  • 每次添加、重命名或删除子模块中的内容时,您必须记住更新
    \uuuuuu all\uuuuu
  • 随着时间的推移,一旦你有了很多子模块,你就不清楚到底要导入什么了