为什么Python使用snake_case作为命名约定?

Python使用snake_case命名风格以提高可读性并与PEP8风格指南保持一致。
On this page

为什么Python使用snake_case作为命名约定?

摘录

Python使用snake_case命名规范,而不是camelCase,这是因为它易读,与PEP8风格指南一致,并且被广泛采用。


Python在变量、函数、模块和其他标识符的命名中有着强烈的文化倾向,即使用snake_case作为标准命名规范。但为什么这种小写加下划线的格式优于像CamelCase这样的替代方案呢?在本文中,我们将探讨Python在使用snake_case背后的历史和理由。

什么是蛇形命名法?

蛇形命名法(也称为下划线命名法)是一种命名风格,其中每个单词之间用下划线(_)分隔。例如:

1my_variable
2some_function()

这与在Java等语言中使用的驼峰命名法不同,后者将单词连接在一起而不使用分隔符。

蛇形命名法在Python中的起源

蛇形命名法的使用可以追溯到Python在1990年代的早期。最初的Python代码库广泛使用了这种风格,很可能受到了C和Perl等语言的影响,这些语言也使用了下划线。

Python的创始人Guido van Rossum喜欢蛇形命名法,因为它易读性强。在单词之间有视觉分隔使得标识符在一瞥间更容易解析。因此,这个风格被沿用并在随后的许多Python库和框架中传播开来。

蛇形命名法的优势

除了历史和先例之外,使用蛇形命名法进行命名具有以下几个优势:

  • 可读性 - 下划线在标识符中视觉上分隔了单词,使得在阅读代码时更容易快速解析。

  • PEP8一致性 - 根据Python PEP8风格指南,蛇形命名法是推荐的命名约定。使用它可以提高与这个广泛使用的风格指南的一致性。

  • 区分度 - 蛇形命名法使得Python与更常用的使用驼峰命名法的Java和JavaScript等语言区分开来。这有助于保持Python的独特性。

您可以在网上轻松地将文本转换为蛇形命名法

广泛采用蛇形命名法

鉴于上述优点,蛇形命名法被广泛使用:

  • Python标准库在其所有模块和函数名称中都使用蛇形命名法

  • Django和Flask等主要框架也遵循这一约定

  • 大多数开源Python软件包都遵循蛇形命名法作为事实标准

这种广泛采用使蛇形命名法成为大多数Python开发人员预期和首选的风格。

蛇形命名法示例

以下是Python中一些良好的蛇形命名标识符示例:

1user_id = 453
2
3def get_user_name():
4  ...
5
6module_name = 'sys'

您可以使用此在线转换工具验证蛇形命名。

像驼峰命名法这样的替代方法

尽管蛇形命名法占主导地位,但某些Python软件包确实使用驼峰命名法,特别是类名。例如:

1itertools.chain()
2
3json.JSONDecodeError

但总体而言,驼峰命名法很少见,而且将其用于变量和函数等内容可能会影响可读性。

转换命名的工具

如果您需要在不同风格之间转换名称,可以使用诸如pygram之类的库进行编程转换。还有一些在线工具,例如此蛇形命名转换器,可用于快速进行一次性转换。

总结

总之,由于其可读性,Python早期采用了蛇形命名法,并且这种风格仍然是标准约定。遵循蛇形命名法可以提高PEP8的一致性,并与更广泛的社区对该语言的使用方式相匹配。尽管存在其他选择,但蛇形命名法仍然是Python代码中占主导地位且首选的命名方法。