{site_name}

{site_name}

🌜 搜索

Python 的相对导入是一种在模块中引用同一个包中的其他模块的方法

Python 𝄐 0
python相对导入问题,python中包的导入,python导入相对路径,python包导入细节,python模块相互导入,python导入相对路径模块
Python 的相对导入是一种在模块中引用同一个包中的其他模块的方法。相对导入使用当前模块与要导入的目标模块之间的相对位置指定导入路径,而不是绝对路径。

相对导入使用点号(.)表示导入路径的不同级别。例如,在从 my_package.subpackage 中导入名为 module1 的模块时,可以使用以下语法:


from . import module1


这将从 my_package.subpackage 中导入 module1 模块。如果要导入同级目录下的 module2 模块,则可以使用以下代码:


from . import module2


如果要向上层目录导入 module3,则必须使用两个点号(..),如下所示:


from .. import module3


这将从 my_package 目录中的父目录中导入 module3 模块。

以下是一个简单的示例,说明如何使用相对导入。考虑有一个名为 my_package 的包,其中包含以下两个模块:module1.py 和 module2.py。module2.py 将从 module1.py 导入一个函数。

my_package/
__init__.py
module1.py
module2.py

假设 module2.py 只需要 module1.py 中的 add() 函数。我们可以在 module2.py 中使用相对导入来导入 add() 函数,如下所示:

python
from .module1 import add

def multiply(a, b):
return a * b

def divide(a, b):
return a / b

print(add(2, 3))


在此示例中,我们使用相对导入从当前目录的 module1.py 中导入 add() 函数。注意,在 from .module1 import add 中,点号表示当前目录。

需要注意的是,在 Python 3 中,相对导入必须使用明确的包名称。这意味着您需要使用 from .my_module import foo 而非 from . import my_module.