【问题标题】:Can module names in Python end with an underscore?Python 中的模块名称可以以下划线结尾吗?
【发布时间】:2025-04-07 00:20:01
【问题描述】:

您可以在下面找到我面临的问题的示例:


项目

  • 包:
    • xml.py

xml.py

import xml.etree.ElementTree as Et


我的名为 xml.py 的模块在导入时与 xml 包混淆,现在我的问题是:

我能否以不会干扰包名称但同时符合 PEP8 样式指南的方式命名我的模块(例如:xml_.py。我已经看到了这个变量的命名约定但我不确定这样命名模块是否是一个好习惯。

【问题讨论】:

    标签: python module package naming pep


    【解决方案1】:

    PEP-8 模块名称指南指出:

    模块应该有简短的全小写名称。如果提高可读性,可以在模块名称中使用下划线。 Python 包也应该有简短的全小写名称,但不鼓励使用下划线。

    此外,另一个PEP-8 guideline 表示:

    single_trailing_underscore_:按惯例使用以避免与 Python 关键字冲突,例如:

    ...这正是您这样做的原因,而不仅仅是“为了好玩”。 因此,即使它没有明确说明为模块的命名准则,我认为我们可以将其调整为所有 Python 命名约定。所以我认为你很高兴

    【讨论】:

      【解决方案2】:

      模块(文件名)应该有简短的全小写名称,并且它们可以包含下划线;

      Pep8 文档,所以是的,你可以 :)

      【讨论】:

      • 就是这样,我有点困惑,因为到目前为止我还没有在任何项目中看到这样命名的模块(最后是下划线),尽管有人说“模块可以包含下划线” .
      • 我同意你的观点,我只是告诉他这是可能的,毕竟这不是一种普遍的做法
      最近更新 更多