什么是 .在 Python 中的 import 语句中是什么意思?

Posted

技术标签:

【中文标题】什么是 .在 Python 中的 import 语句中是什么意思?【英文标题】:What does a . in an import statement in Python mean? 【发布时间】:2011-11-08 22:30:39 【问题描述】:

我正在查看 Python 的 multiprocessing 模块的代码,其中包含这一行:

from ._multiprocessing import win32, Connection, PipeConnection

而不是

from _multiprocessing import win32, Connection, PipeConnection

细微差别是_multiprocessing 之前的句点。那是什么意思?为什么是这个时期?

【问题讨论】:

称为相对导入:docs.python.org/tutorial/modules.html 如果没有.,如果您在主脚本旁边有一个文件_multiprocessing.py,由于某些无法理解的原因,multiprocessing 会中断。使用.,它确保它拥有自己的模块。 如果. 指的是对等模块,为什么文档会说使用.,而该多处理模块应该是常规sys.path 库的一部分?问题和克里斯的澄清是否混淆了,还是我不理解?感谢您的帮助。 另一个问题(现已关闭)有替代的很好的答案:***.com/questions/22511792/… 【参考方案1】:

这是显式relative imports 的新语法。表示从当前包导入。

【讨论】:

什么定义了“当前包”? 应该说从哪里导入包。它基本上意味着当前的命名空间或包目录。 谢谢,我想我明白你的意思了。为了清楚起见,您介意提供一个例子吗? 你可以这样做:from . import peermodulefrom .. import parentpackagemodule @bmc 学习的一个好方法是设置一个小实验并自己尝试。 ;-)【参考方案2】:

模块名称中的点用于相对模块导入(参见here 和here,第 6.4.2 节)。

您可以使用多个点,不是指当前包,而是指它的父包。这应该只在包中使用,在主模块中应该始终使用绝对模块名称。

【讨论】:

【参考方案3】:

在当前文件夹中默认一个点,当你想去父文件夹时,你可以这样做,我的 python 版本 3.6.3

【讨论】:

你的解释很清楚,而不是 1000 字。谢谢。

以上是关于什么是 .在 Python 中的 import 语句中是什么意思?的主要内容,如果未能解决你的问题,请参考以下文章

如何用Python语言实现在一个文件中查找特定的字符串?

彻底搞懂Python 中的 import 与 from import

彻底搞懂Python 中的 import 与 from import

Python介绍

python--函数之python执行def和import时做了什么

python基础:python介绍python发展史