from . import XXXX

6
在我的Python包中,__init__.py文件包含以下语句:
from . import XXXX

这里的 "." 是什么意思?我是通过查看另一个软件包来学习这个技术的,但我不明白它的含义。
谢谢!
2个回答

12

这是一种相对导入方式。 来自: http://docs.python.org/py3k/reference/simple_stmts.html#the-import-statement

在指定要导入的模块时,您不必指定模块的绝对名称。当一个模块或包被包含在另一个包中时,可以在同一顶级包中进行相对导入,而无需提及包名称。通过在from后面的指定模块或包中使用前导点号,您可以指定在不指定确切名称的情况下向上遍历当前包层次结构的高度。

一个前导点表示存在导入的模块的当前包。两个点表示向上一级包。三个点表示向上两个级别,以此类推。因此,如果您从pkg包中的模块执行from . import mod,则最终将导入pkg.mod。如果您从pkg.subpkg1中执行..subpkg2 import mod,则将导入pkg.subpkg2.mod。相对导入的规范包含在PEP 328中。


5

1
当然是这样的。谢谢指出正确的功能名称给我。 - jlconlin
虽然从理论上讲这可能回答了问题,但最好在此处包括答案的基本部分并提供参考链接。 - Barmar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接