Python 专用模块的命名约定

Python 专用模块的命名约定,python,module,naming-conventions,Python,Module,Naming Conventions,我在一个模块中有多个内部函数。因为模块太大了,我想把这些内部函数分解成同一个包中单独的“实用程序”模块。实用程序模块将只包含不应被视为包的公共API的一部分的包内部函数。此类内部模块是否有公认的命名约定 直观地说,我会在模块名称前面加一个下划线。但是,这是C/C++模块的命名约定 如果函数位于单独的模块中(因为在这种情况下,下划线指的是模块级别的隐私),那么简单地在函数名前面加下划线(就像我之前所做的那样)似乎是不正确的。据我所知不是这样,但有一些事情经常发生: 名为internal或inte

我在一个模块中有多个内部函数。因为模块太大了,我想把这些内部函数分解成同一个包中单独的“实用程序”模块。实用程序模块将只包含不应被视为包的公共API的一部分的包内部函数。此类内部模块是否有公认的命名约定

直观地说,我会在模块名称前面加一个下划线。但是,这是C/C++模块的命名约定


如果函数位于单独的模块中(因为在这种情况下,下划线指的是模块级别的隐私),那么简单地在函数名前面加下划线(就像我之前所做的那样)似乎是不正确的。

据我所知不是这样,但有一些事情经常发生:

  • 名为
    internal
    internal\u xyz
  • 包含内部模块的名为
    internal
    的子包
  • 下划线,尽管它是用于C模块的。一、 就个人而言,我更喜欢这个,因为它很短,而且每个人都知道它的意思

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