【发布时间】:2023-02-22 20:22:37
【问题描述】:
我是 python 的初学者。我正在浏览 cantools.database 模块的源代码。 有人可以解释一下导入语句中模块名称的这些点/点前缀是什么意思吗?
我真的无法在任何地方找到任何解释。这些点是模块名称的一部分吗?这可能吗?
谢谢!
【问题讨论】:
标签: python
我是 python 的初学者。我正在浏览 cantools.database 模块的源代码。 有人可以解释一下导入语句中模块名称的这些点/点前缀是什么意思吗?
我真的无法在任何地方找到任何解释。这些点是模块名称的一部分吗?这可能吗?
谢谢!
【问题讨论】:
标签: python
一个点表示您所在的文件夹/包/模块, 补丁中的两个点一个文件夹/包/模块, 三个点两个文件夹/包/模块补丁...
等等。
【讨论】:
模块前的点表示它是相对导入。
例如,如果您有一个带有“main.py”的父文件夹“main_folder”和一个带有“module.py”和“module_2.py”的子文件夹“child”,您可以在“module_2.py”中说:
import .module
Python 将开始在当前目录中寻找“module.py”,而不是在其他任何地方。 如果你想从同一个父目录导入一个模块,你可以在'main.py'中说:
import ..module
这将在整个父目录中搜索模块。 如果你想从一个特定的文件夹中导入一个特定的模块,你可以这样写:
import child.module
【讨论】:
. 指的是相对引用。看
Python PEP relative reference。
单个 . 映射到当前。双..给父母。
它遵循与文件系统(文件结构)引用“相似”的原则。
【讨论】: