【问题标题】:Meaning of dot(s) as prefix to module name in import statement点作为导入语句中模块名称前缀的含义
【发布时间】:2023-02-22 20:22:37
【问题描述】:

我是 python 的初学者。我正在浏览 cantools.database 模块的源代码。 有人可以解释一下导入语句中模块名称的这些点/点前缀是什么意思吗?

enter image description here

我真的无法在任何地方找到任何解释。这些点是模块名称的一部分吗?这可能吗?

谢谢!

【问题讨论】:

标签: python


【解决方案1】:

一个点表示您所在的文件夹/包/模块, 补丁中的两个点一个文件夹/包/模块, 三个点两个文件夹/包/模块补丁...

等等。

【讨论】:

  • 明白了。谢谢!
【解决方案2】:

模块前的点表示它是相对导入。

例如,如果您有一个带有“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

【讨论】:

    【解决方案3】:

    . 指的是相对引用。看 Python PEP relative reference
    单个 . 映射到当前。双..给父母。
    它遵循与文件系统(文件结构)引用“相似”的原则。

    【讨论】:

      猜你喜欢
      • 2013-07-25
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 2017-03-19
      • 2020-01-09
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      相关资源
      最近更新 更多