什么是 .在 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 peermodule
from .. import parentpackagemodule
@bmc 学习的一个好方法是设置一个小实验并自己尝试。 ;-)【参考方案2】:
模块名称中的点用于相对模块导入(参见here 和here,第 6.4.2 节)。
您可以使用多个点,不是指当前包,而是指它的父包。这应该只在包中使用,在主模块中应该始终使用绝对模块名称。
【讨论】:
【参考方案3】:在当前文件夹中默认一个点,当你想去父文件夹时,你可以这样做,我的 python 版本 3.6.3
【讨论】:
你的解释很清楚,而不是 1000 字。谢谢。以上是关于什么是 .在 Python 中的 import 语句中是什么意思?的主要内容,如果未能解决你的问题,请参考以下文章
彻底搞懂Python 中的 import 与 from import
彻底搞懂Python 中的 import 与 from import