我最近创建了一个Python包,并且在其中仅使用相对导入来访问存储在其他方法中的函数。
现在,在Numpy中,我看到很多文件大量使用绝对导入,例如this file。它有很多类似from numpy.core import overrides
的语句。
在使用相对导入时,我没有看到任何缺点。他们为什么这样做而不是from ..core import overrides
?绝对导入不要求已经安装了numpy吗?
答案 0 :(得分:1)
Absolute vs Relative Imports in Python
首选绝对导入,因为它们非常清楚和直接。仅通过查看语句,就可以很容易地准确知道导入的资源在哪里。此外,即使import语句的当前位置更改,绝对导入仍然有效。实际上,PEP 8明确建议绝对导入。
但是,有时,绝对导入可能会变得非常冗长,具体取决于目录结构的复杂程度。
相对进口的一个明显优势是它们非常简洁。
不幸的是,相对进口可能很杂乱,特别是对于共享 目录结构可能会更改的项目。相对的 导入也不如绝对导入更易读,这也不容易 告诉导入资源的位置。