一、绝对导入和相对导入
1. 绝对导入
import os
import m2
- 使用这种语法格式的 import 语句,会导入指定模块中的所有成员(包括变量、函数、类等)。
- 不仅如此,当需要使用模块中的成员时,需用该模块名(或别名)作为前缀,否则 Python 解释器会报错。
2. 相对导入
from . import module_name。 # 导入和自己同目录下的模块。
from .package_name import module_name。 # 导入和自己同目录的包的模块。
from .. import module_name。 # 导入上级目录的模块。
from ..package_name import module_name。 # 导入位于上级目录下的包的模块。
当然还可以有更多的.
,每多一个点就多往上一层目录。
- 使用这种语法格式的 import 语句,只会导入模块中指定的成员,而不是全部成员。
- 同时,当程序中使用该成员时,无需附加任何前缀,直接使用成员名(或别名)即可。
3. 导入的艺术
- 入口文件可以使用绝对导入。
- 非入口文件使用相对导入。(非入口文件不要使用绝对导入)
二、pycharm 中的文件结构与 import 用法
在 pycharm 中,一般不会将当前文件目录自动加入自己的 sourse_path。如果遇到无法 import 同级目录下的其他模块,右键当前目录,进入 make_directory as --> Sources Root 将当前工作的文件夹加入 source_path 就可以了。