在 Python 中,import
语句中的 .
(单点)、..
(双点)和 ...
(三点)用于表示相对导入,它们根据当前模块的位置来引入其他模块。它们的含义如下:
1. .
(单点) - 当前目录
单点表示当前目录,也就是当前模块所在的包或目录。
- 例子: 如果你在
file1.py
中,想要导入同目录下的file2.py
文件,可以使用:
from .file2 import some_function
- 这表示从当前目录(即
file1.py
所在的目录)中导入file2.py
中的some_function
。
2. ..
(双点) - 上级目录
双点表示当前目录的上级目录,也就是当前包所在目录的父目录。
- 例子: 假设你的项目目录结构如下:
my_project/__init__.pymodule1/__init__.pyfile1.pymodule2/__init__.pyfile2.py
如果你在 module1/file1.py
中想导入 module2/file2.py
,可以使用:
from ..module2.file2 import some_function
这表示从 module1
的上级目录 my_project
中,导入 module2
目录下的 file2.py
。
3. ...
(三点) - 上两级目录
三点表示当前目录的上两级目录。它的作用和双点类似,但更高一级,通常用于更深层的包结构。
- 例子: 假设目录结构如下:
my_project/__init__.pymodule1/__init__.pysubmodule1/__init__.pyfile1.pymodule2/__init__.pyfile2.py
如果你在 module1/submodule1/file1.py
中想要导入 module2/file2.py
,可以使用:
from ...module2.file2 import some_function
- 这表示从
submodule1
的上两级目录my_project
中,导入module2/file2.py
。
总结:
.
:表示当前模块所在的目录。..
:表示当前模块所在目录的父目录(上级目录)。...
:表示当前模块所在目录的祖父目录(上两级目录)。
这些相对导入方式允许你在模块间进行灵活的导入,而不需要依赖于绝对路径,适用于包结构比较复杂的项目。