私有模块的命名约定

时间:2014-10-09 12:14:46

标签: python module naming-conventions

我在模块中有多个内部函数。由于模块变得太大,我想将这些内部函数分解为一个单独的"实用程序"模块在同一个包中。实用程序模块仅包含程序包内部函数,这些函数不应被视为程序包的公共API的一部分。这些内部模块是否有可接受的命名约定?

直观地说,我在模块名称前加上下划线。但是,这是C / C ++模块according to PEP8的命名约定。

如果功能在一个单独的模块中(因为在这种情况下,下划线指的是模块级隐私),简单地在功能名称前加下划线(就像我现在所做的那样)似乎并不正确。 p>

2 个答案:

答案 0 :(得分:2)

我不会说带有前缀的下划线将专门应用于C / C ++扩展模块。相反,这样的模块通常不打算直接使用,而是为同名的Python模块提供私有实现(参见socket / _socket)。根据这个逻辑,我不明白为什么任何不打算公开使用的模块(无论是用C还是Python实现)都不应该使用_前缀。

答案 1 :(得分:1)

据我所知,但有些事情经常出现:

  • 名为internalinternal_xyz
  • 的模块
  • 包含内部模块的名为internal的子包
  • 下划线,即使它适用于C模块。我个人更喜欢这个,因为它的简短,因为每个人都知道这意味着什么。