【发布时间】:2019-01-16 22:08:35
【问题描述】:
我最近创建了一个 Python 包,其中仅使用相对导入来访问存储在其他方法中的函数。
现在,在 Numpy 中,我看到很多文件大量使用绝对导入,例如this file。它有很多类似from numpy.core import overrides的语句。
我认为使用相对导入没有缺点。他们为什么这样做,而不是from ..core import overrides?绝对导入不需要已经安装了numpy吗?
【问题讨论】:
-
我的第一个想法是他们最初会想要支持不支持相对导入的 Python 版本(然后他们继续这样做),但似乎 PEP 328 在 2004 年获得批准并发布了 NumPy 1.0在 2006 年,所以也许不是。这可能只是风格问题,或者开发人员不习惯相对导入。
-
对我来说,这是因为 PEP8 推荐,然后是像 PyCharm 这样的 IDE,允许使用简单的快捷方式添加每个需要的绝对路径导入。
-
这是一种风格选择,因为可读性很重要。