2011-09-14 37 views
5

在我的Python的一个打包__init__.py文件中包含的声明自。进口XXXX

from . import XXXX 

什么了“”在这里呢?我通过查看另一个软件包获得了这种技术,但我不明白它的含义。

谢谢!

回答

5

这是一个relative import

+1

杜赫,当然是。感谢您将我指向该功能的正确名称。 – jlconlin

+0

虽然这可能在理论上回答这个问题,[这将是更可取的](/ meta.stackoverflow.com/q/8259)在这里包括答案的基本部分,并提供参考链接。 – Barmar

10

其相对重要。 来源:http://docs.python.org/py3k/reference/simple_stmts.html#the-import-statement

当指定哪些模块导入你没有指定模块的 绝对名称。当在另一个包中包含模块或包时,可以在 的相同顶层包中进行相对导入,而不必提及包名。通过 在指定的模块或包中使用前导点后 可以指定在不指定确切名称的情况下向上遍历当前包层次结构 的程度。

一个引导点表示当前存在导入模块的 包。两个点意味着一个包级别的 。三个点上升两级,等等。因此,如果您从pkg包中的模块执行 from . import mod,那么您将结束导入pkg.mod的 。如果您从pkg.subpkg1中的 执行..subpkg2 import mod,则您将导入pkg.subpkg2.mod。对于相对进口的规格 包含在PEP 328内。

相关问题