2.2 KiB
2.2 KiB
Python 中的绝对导入与相对导入
原文:https://www.askpython.com/python-modules/absolute-vs-relative-importing
你好,学习伙伴!今天我们将学习 Python 中绝对导入和相对导入的区别。
每次你需要一个直接的函数来实现我们程序中的任何东西,我们可以直接从正确的库中导入它!现在让我们学习 Python 编程中的绝对和相对导入。
什么是绝对进口?
当我们通过绝对导入来导入模块时,我们需要在 import关键字后面包含模块的完整路径。
完整路径包括主模块/库以及程序中使用的子模块或函数。
绝对进口的优势
- 这种方法清晰、直截了当且易于理解
- 即使 import 语句的当前位置在以后发生了变化,absolute import 命令仍然有效。
绝对进口的缺点
让我们假设,我们必须导入一个存在于根模块更深层的函数。此类模块的绝对导入命令如下所示:
from package_1.sub_package_1.sub_package2.sub_package3.module1 import req_function
如果所需的功能存在于更深的层中,那么就会变得非常混乱和复杂。这时候相对进口来拯救!
什么是相对导入?
在相对方法中,我们可以相对于某个包或子包的位置来导入一个函数,这是一种更好的导入模块和函数的方法。
我们有两种类型的相对导入方法,即implicit和explicit方法,但是隐式方法不再支持 Python3.x 版本。
相对导入方法如下所示:
from .sub_package_x.module_5 import req_function
最初的.考虑了所有之前的主机模块/库,我们不需要像绝对导入那样写整个东西。
相对进口的优势
- 重要陈述简短明了。
- 降低导入语句的复杂性
相对进口的缺点
- 这种方法可读性不强,而且程序员不知道许多根模块。
- 程序员不知道我们正在导入的函数的来源
结论——绝对进口与相对进口
现在您知道了绝对和相对导入方法之间的基本区别。
我建议你作为初学者选择绝对方法,随着你编码经验的增加,你可以开始使用相对方法。