2014-10-02 45 views
0

不知何故,我无法在SO的其他地方找到确切的答案。Python - 从更深的子文件夹导入

考虑:

root\ 
    __init__.py 
    main.py 
    folder0\ 
     __init__.py 
     folder1\ 
      __init__.py 
      class1.py 
     folder2\ 
      __init__.py 
      class2.py 

有没有办法导入的顶级目录作为一个整体?例如

# main.py 
import folder0 
obj1 = folder0.folder1.class1.Class1() 
obj2 = folder0.folder2.class2.Class2() 

还是我必须直接导入模块?例如

# main.py 
from folder0.folder1 import class1 
from folder0.folder2 import class2 
obj1 = class1.Class1() 
obj2 = class2.Class2() 
+0

你试过了吗? :) – 2014-10-02 16:13:23

回答

3

当然。您只需要将相关的导入添加到__init__.py。例如: -

# folder2/__init__.py 
from . import class2 

# folder0/__init__.py 
from . import folder1 
from . import folder2 

等上。