在Python中应使用下划线还是驼峰命名?

Python官方的样式指南Pep 8建议为变量和函数使用下划线和蛇形命名法。但驼峰命名法有时也会被使用。
On this page

在Python中应使用下划线还是驼峰命名?

Excerpt

对于惯用的 Python 代码,标准约定是使用下划线和蛇形命名法来命名变量和函数。但在某些情况下如与其他语言集成时,驼峰命名法也可以接受。


在 Python 中应使用下划线还是驼峰命名?

在为 Python 变量和函数命名时,开发人员有两种主要的格式选项 - 下划线(snake_case)或驼峰式命名法(camelCase)。但对于 Python,哪种命名规范是首选呢?本文我们将比较下划线和驼峰命名法的优劣。

简介

首先,让我们定义这两种格式化方法:

  • 蛇形命名法(下划线)- example_variable
  • 驼峰命名法- exampleVariable

Python 的官方样式指南Pep 8建议为变量和函数使用 snake_case。但你也会看到一些 camelCase,那么哪个更好呢?

Python 中下划线的优点

在变量和函数命名中使用下划线有几个优点:

  • 更符合 Python 的编程风格
  • 视觉分隔提高了可读性
  • 将名称与采用 CapWords 的类区分开
  • 跨平台的一致约定

下划线有助于使代码更符合 Python 惯用法。

下划线的缺点

下划线命名的潜在缺点包括:

  • 输入长名称时可能会感到笨拙
  • 可能难以快速视觉解析
  • 不如驼峰命名法简洁紧凑

所以虽然可读性好,但下划线需要更多输入,并且可能出现凌乱。

驼峰命名的优点

驼峰命名具有一些优势,如:

  • 自然的大小写映射更熟悉
  • 不需要额外符号,输入简洁紧凑
  • 在其它语言如 JavaScript 中使用广泛

所以它确实允许密集简洁的变量命名。

驼峰命名的缺点

使用驼峰命名的缺点包括:

  • 不是 Python 的常见约定
  • 减少单词之间的视觉分隔
  • 可能与类名称冲突

它不被认为很“Pythonic”。

自动格式化

Black这样的工具可以自动格式化 Python 代码。Black 默认强制执行 snake_case 命名。但可以通过配置允许驼峰命名:

1# pyproject.toml
2
3[tool.black]
4skip-string-normalization = true

所以自动格式化器让你强制执行命名风格。

何时使用驼峰命名

在某些情况下,驼峰命名可能是合适的:

  • 与其他语言的库交互
  • 遵循 Python 库的约定
  • 重载默认样式

所以它不完全被禁止,但下划线是强烈推荐的方式。

结论与建议

对于大多数 Python 编码,遵循 snake_case 为变量和函数命名是标准约定和推荐方法。但在与其他语言集成时,驼峰命名有时也被使用。

我的建议是默认使用 snake_case 来符合 Python 惯用法。使用自动格式化器如 Black 来强制执行这一点。只在特别与需要驼峰命名的外部库交互时使用驼峰命名。

命名的一致性确实有助于提高代码的可读性和质量。遵循 Python 的下划线约定,你的未来自己会感激不尽!