Excerpt
Python 采用蛇形命名法作为标准约定。了解为何采用这种样式以及它对可读性的优势。
如果你编写过 Python 代码,你会注意到一个强大的约定——变量、函数和属性使用带下划线的 snake_case 命名。但为什么这种样式会成为 Python 中的标准约定呢?让我们来检视 Python 的 snake_case 命名的由来和优势。
什么是蛇形命名法?
蛇形命名法(也称为下划线命名法)是一种使用小写字母并在单词之间加上下划线的命名样式。例如:
1first_name = "Mary"
2user_id = 4562
它在单词之间提供了视觉分隔,以提高可读性。
按照惯例,Python 代码中绝大多数的变量、函数、方法和模块名都使用 snake_case。
历史及起源
Python 的 snake_case 约定受其他语言的影响:
- C 语言在名称中使用下划线分隔单词
- Lisp 代码使用下划线分隔词
- Ada 和 Modula 也在名称中采用了下划线
所以当 Python 在 1991 年创建时,使用下划线与其设计中吸收的现有语言保持一致。这种小写和下划线风格随着 Python 的发展成为标准约定。
蛇形命名法的优势
在 Python 代码中使用 snake_case 命名有一些显著优势:
- 通过视觉分隔词汇提高可读性
- 避免像驼峰式命名法这样的词汇运行在一起导致理解困难
- 将名称与使用 CapWords 的类区分开
- 跨操作系统和文件系统保持一致
snake_case 提供的可读性和区分度导致了其被广泛采用。
蛇形命名法的缺点
蛇形命名法有一些需要考虑的缺点:
- 输入许多下划线可能很麻烦
- 不如驼峰式命名法或帕斯卡命名法简洁紧凑
但提高的可读性远远大于这些细微的缺点。
PEP 8 样式
Python 的官方样式指南PEP 8强烈建议对变量、函数、方法和模块使用 snake_case。PEP 8 不推荐使用驼峰式命名。
例外情况
在某些情况下可能不使用 snake_case,包括:
- 遵循外部库的约定
- 重载默认命名风格
- 与其他语言交互
所以可以重载 snake_case,但下划线仍然是标准约定。
自动格式化
像Black这样的工具可以自动格式化 Python 代码,并默认强制执行 snake_case。这自动化了对标准命名约定的遵循。
结论
Python 在早期就受到了 C 语言和 Lisp 等语言的影响,采用了 snake_case 命名约定。这种约定保留了下来,现在已经成为惯用的 Python 代码。这种命名方式提高了可读性,并避免了冲突。
基于外部库存在一些例外情况。但是只要可能,为名称使用 snake_case 可以提供一致性,使 Python 代码更 Pythonic。