python 模块中相对导入,绝对导入,from __future__ import absolute_import的区别?

python模块中的相对导入,绝对导入,有些地方会写

from __future__ import absolute_import

希望有个更详细的讲解。

阅读 32.6k
2 个回答

相对导入:在不指明 package 名的情况下导入自己这个 package 的模块,比如一个 package 下有 a.py 和 b.py 两个文件,在 a.py 里 from . import b 即是相对导入 b.py。

绝对导入:指明顶层 package 名。比如 import a,Python 会在 sys.path 里寻找所有名为 a 的顶层模块。

from __future__ import absolute_import: 在 3.0 以前的旧版本中启用相对导入等特性所必须的 future 语句。

参见:PEP 328

新手上路,请多包涵

这应该不叫相当导入和绝对导入吧,应该叫部分导入和完全导入才合理吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏