2014-10-02 22 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 

等上。