Python标准库中类名的大小写标准是什么?

时间:2017-01-01 04:50:36

标签: python naming-conventions

Python标准库类的规范似乎是类名是小写的 - 这似乎适用于内置函数,例如strint以及大多数类的部分必须导入的标准库模块,例如datetime.datedatetime.datetime

但是,某些标准库类(例如enum.Enumdecimal.Decimal)是大写的。乍一看,当它们的名称等于模块名称时,类看起来似乎是大写的,但在所有情况下都不适用(例如datetime.datetime)。

Python标准库中类名的大小写约定背后的基本原理是什么?

2 个答案:

答案 0 :(得分:2)

“开发者指南”的Key Resources部分列出了PEP 8作为样式指南。

从PEP 8命名约定,强调我的。

  

Python的库的命名惯例有点混乱,所以   我们永远不会完全保持一致 - 不过,这里是   目前推荐的命名标准。新模块和包   (包括第三方框架)应该写入这些   标准,但现有的图书馆有不同的风格,   首选内部一致性

Also from PEP 8

  

风格指南是关于一致性的。与此风格指南保持一致   很重要项目的一致性更为重要。   一个模块或功能内的一致性是最重要的。   ...

     

忽略特定指南的其他一些好理由:

     
      
  • 与周围的代码保持一致也会破坏它(可能是出于历史原因) - 尽管这也是一个清理的机会   别人的混乱(真正的XP风格)。
  •   
  • 因为有问题的代码早于指南的引入,所以没有其他理由可以修改该代码。
  •   

您可能永远不会知道为什么标准库命名约定与PEP 8冲突,但是对于新内容甚至是您自己的项目来说,它可能是一个好主意。

答案 1 :(得分:0)

Pep 8被认为是许多Python开发人员的标准风格指南。建议使用CamelCase / CapWords命名类。

在记录接口并主要用作可调用接口的情况下,可以使用函数的命名约定。

请注意,内置名称有一个单独的约定:大多数内置名称是单个单词(或两个单词一起运行),CapWords约定仅用于异常名称和内置常量。

检查此link是否有PEP8命名约定和标准。

datetime是标准库的一部分,

Python的标准库非常广泛,提供了各种各样的工具,如下面列出的长目录所示。该库包含内置模块(用C编写),可以访问系统功能,例如Python程序员无法访问的文件I / O,以及用Python编写的提供标准化的模块解决日常编程中出现的许多问题。

在某些情况下,比如sklearn,nltk,django,包名都是小写的。这个link将带您到那里。

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

当用C或C ++编写的扩展模块具有提供更高级别(例如更多面向对象)的接口的Python模块时,C / C ++模块具有前导下划线(例如_socket)。

我希望这涵盖所有问题。