一次从多个子目录命名导入

问题描述

假设我有以下结构:

├─ main.py
├─ stuff/
   ├─ more_stuff_one/
      ├── main.py
   ├─ more_stuff_two/
      ├── main.py

现在,在根文件夹的 main.py 中,我正在做:

from stuff.more_stuff_one import main as more_stuff_one
from stuff.more_stuff_two import main as more_stuff_two

有没有一种方法可以实现相同的结果而不必显式遍历 stuff 中的每个子文件夹?我想从 main.py 中的每个子文件夹导入每个 stuff 并将其命名为子文件夹。

解决方法

您可以使用父文件夹中的 __init__.py 文件。在它里面导入孩子。 您仍然需要浏览子文件夹,但它会被“隐藏”

├─ main.py
├─ stuff/
   ├─ __init__.py
   ├─ more_stuff_one/
      ├── main.py
   ├─ more_stuff_two/
      ├── main.py

__init__.py 的内容:

from stuff.more_stuff_one import main as more_stuff_one
from stuff.more_stuff_two import main as more_stuff_two

来自main.py的使用:

from stuff import more_stuff_one,more_stuff_two