我最近创建了一个 Python 包,在其中仅使用相对导入来访问存储在其他方法中的函数。
现在,在 Numpy 中,我看到很多文件大量使用绝对导入,例如这个文件 https://github.com/numpy/numpy/blob/8f547f246b0c7463768adebafe0a57df9c03321b/numpy/lib/function_base.py。它有很多类似的语句from numpy.core import overrides
.
我不认为使用相对导入有什么缺点。他们为什么这样做,而不是from ..core import overrides
?绝对导入不需要已经安装 numpy 吗?
Python 中的绝对导入与相对导入 https://realpython.com/absolute-vs-relative-python-imports/
绝对进口
绝对导入是首选,因为它们非常清晰和直接。只需查看语句即可轻松判断导入的资源到底在哪里。此外,即使导入语句的当前位置发生变化,绝对导入仍然有效。事实上,PEP 8 明确建议绝对导入。
然而,有时,绝对导入可能会变得非常冗长,具体取决于目录结构的复杂性。
相对导入
相对导入的一个明显优势是它们非常简洁。
不幸的是,相对导入可能会很混乱,特别是对于共享的
目录结构可能会改变的项目。相对的
导入的可读性也不如绝对导入,而且这并不容易
告知导入资源的位置。
PEP8 https://www.python.org/dev/peps/pep-0008/: 关于进口 https://www.python.org/dev/peps/pep-0008/#imports
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)