在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
text

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

何时使用驼峰命名§

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

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

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

结论与建议§

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

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

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

  • All
  • English
  • 简体中文
  • Best match
  • Oldest
  • Newest
  • 2023
  • Amanda
  • Davy
  • IToolkit
  • Mia
  • 大威
  • API
  • Base64
  • Binary
  • C
  • C++
  • Checksum
  • Coding
  • Computer Science
  • CRC
  • CRC32
  • Cryptography
  • CSharp
  • CSV
  • Cyclic Codes
  • Data
  • DCOM
  • Decoding
  • Education
  • Encoding
  • Encryption
  • Functions
  • Go
  • gpt
  • Hash
  • HTML
  • Image
  • Java
  • JavaScript
  • Kotlin
  • Linux
  • Lua
  • Mac
  • MBR
  • MongoDB
  • MySQL
  • Other
  • PHP
  • Programming
  • Python
  • R
  • Redundancy
  • Rust
  • Scala
  • Security
  • SHA
  • Software
  • SQL
  • SQLServer
  • Strings
  • Swift
  • VB
  • Windows
  • Windows 7
  • Applications
  • Binary Data
  • Data Retrieval
  • Database
  • File Path
  • Image Storage
  • Language Display
  • Operating Systems
  • Srtrings
  • 编码
  • 解码