python 相对导入和绝对导入

首先要说明的是相对导入和绝对导入是针对包内的模块导入包内部的模块。

举个例子

package
├── __init__.py
├── moduleX.py
├── moduleY.py

我们要在 moduleX.py 导入 moduleY.py ,就会出现相对导入和绝对导入两种方式。
此时,在 moduleX.py 中可以有如下几种写法

import moduleY  # 1
from . import moduleY  # 2
from package import moduleY  # 3
  • python2

python212 两种都是相对导入,效果是一样的

称呼上有所区别,1 被称为隐式相对导入2 被称为显式相对导入

3 这种方式便是绝对导入,会在 sys.path 中的路径搜索

  • python3

python3 中只有 2 是相对导入, 13 都是绝对导入

官方推荐使用第 3

  • 补充
    我们平时写代码,导入第三方模块,都会在 sys.path 中的路径进行搜索,没有上面这些七七八八的说法。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。