📜  .. (1)

📅  最后修改于: 2023-12-03 15:29:07.438000             🧑  作者: Mango

..:Python 中的相对导入

在 Python 中,我们可以使用 import 语句将另一个模块中的代码引入到当前模块中,以便重用。而相对导入是指在当前模块地址上,引用其他模块的方式。

相对导入由点 . 组成,可以有一个或多个连续,每个点代表路径的一个级别,其中 .. 表示返回上层目录。

使用方式

以下假设我们有一个 Python package 命名为 my_package,包含了如下文件:

my_package/
   __init__.py
   one_module.py
   subpackage/
      __init__.py
      two_module.py
  • one_module.py 中,我们可以使用以下语句从 my_package 中引用 two_module
from .subpackage import two_module
  • two_module.py 中,我们可以使用以下语句从 my_package 中引用 one_module
from .. import one_module
注意事项
  1. 相对导入只能用于 package 中;
  2. 在 Python 2 中,相对导入需要在 __init__.py 中明确声明 package bound。例如,from foo import bar 只会在 __init__.py 声明过的 package bound 中才被认为是相对导入,否则会被认为是绝对导入;
  3. 在 Python 3 中,相对导入默认使用 package bound,无需在 __init__.py 中声明。
参考资料