Python 多层级导包

假如我的项目层级结构如下,project文件夹为项目根路径:

project/
├── first/
│   ├── __init__.py
│   ├── second/
│   │   ├── __init__.py
│   │   └── second_test.py
│   └── first_test.py
└── main.py

假设项目入口文件为main.py,而first_test.pyTestFirst类,second_test.pyTestSecond类,那么现在需求如下:

  1. main.py中导入first_test.py中的TestFirst
  2. first_test.py中导入second_test.py中的TestSecond

main.py的代码如下:

from first.first_test import TestFirst

TestFirst()

first_test.py的代码如下:

from first.second.second_test import TestSecond

class TestFirst:
    def __init__(self) -> None:
        print('first_test.py')

TestSecond()

second_test.py的代码如下:

class TestSecond:
    def __init__(self) -> None:
        print('second_test.py')

执行main.py后得到如下结果:

second_test.py
first_test.py

通过上述例子可以发现,first_test.py模块中导入second_test模块的路径和main.py导入first_test.py模块的路径的起始模块都是first

说明我们在确定各个模块之间导入关系的起始模块是以入口文件main.py)为基准。

你可能感兴趣的:(python,python,开发语言)