命名规范snake_case

python snake_case命名规范

snake_case 是一种 变量/函数命名规范 ,核心规则是:全小写字母 + 单词之间用下划线(_)分隔 ,因下划线形似蛇(snake)而得名。它是 Python 社区的「默认命名风格」(PEP 8 规范推荐),你之前定义的 hex_to_int32hex_to_uint8 等函数名,已经是标准的 snake_case 写法~

一、核心规则与示例

1. 命名规则
  • 所有字符小写,无大写字母;
  • 多个单词之间用 单个下划线 连接;
  • 不能以数字开头,不能包含空格、特殊字符(!@#$% 等);
  • 避免使用 Python 关键字(如 ifforclass 等)。
2. 正确 vs 错误示例
场景 正确(snake_case) 错误/不推荐写法 说明
变量名 user_namehex_str userName(驼峰)、User_Name(帕斯卡) 单词间用下划线,全小写
函数名 hex_to_int32get_data hexToInt32(驼峰)、HexToInt32 你之前的函数名完全符合
模块名 hex_converter.py hexConverter.pyHexConverter.py 模块文件也推荐 snake_case
常量名(全大写变体) MAX_RETRYBIT_WIDTH maxRetryMaxRetry 常量通常用「全大写 snake_case」
3. 你的代码中的 snake_case 应用(回顾)

你之前定义的变量、函数、类型别名,都遵循了 snake_case 规范(非常标准):

python 复制代码
# 变量名:hex_str(hex + str,下划线连接)
hex_str = "0x12345678"

# 函数名:hex_to_int32(hex + to + int32,下划线连接)
def hex_to_int32(hex_str: str, endian: Endian = "big") -> int: ...

# 类型别名:Endian(虽为大写开头,但属于「类型名」,Python 中类型/类名推荐 PascalCase,特殊情况)
Endian = Literal["big", "little"]  # 类型别名可例外,符合 PEP 8

二、snake_case 的优势(为什么 Python 推荐)

  1. 可读性强 :下划线清晰分隔单词,比驼峰(hexToInt32)更易一眼识别单词边界(尤其长命名);
  2. 符合 Python 哲学 :「简洁明了」,避免大小写混用导致的拼写错误(如 userNameusername 容易混淆);
  3. 工具兼容:Python 相关工具(IDE 自动补全、静态检查工具如 flake8)对 snake_case 支持更友好。

三、常见误区(避坑)

  1. 多下划线连用 :不要写 hex__to__int32(双下划线),仅用单个下划线分隔;
  2. 开头/结尾下划线 :除非是 Python 特殊语法(如私有变量 _private_var、魔法方法 __init__),否则不要写 _hex_strhex_str_
  3. 数字开头 :不能写 16_hex_to_int,数字只能在中间或结尾(如 hex_to_int16 是允许的);
  4. 关键字冲突 :不能用 classdefif 等命名,如 def class_to_hex(): ... 是错误的。

四、与其他命名风格的区别(避免混淆)

命名风格 规则 示例 适用语言/场景
snake_case 全小写 + 下划线分隔 hex_to_int32 Python(变量/函数/模块)
camelCase(驼峰) 首字母小写,后续单词首字母大写 hexToInt32 Java、JavaScript
PascalCase(帕斯卡) 所有单词首字母大写 HexToInt32 Python(类/类型名)、C#
kebab-case(烤肉串) 全小写 + 连字符分隔 hex-to-int32 文件名、URL(Python 中不允许变量用)

五、实际应用建议(结合你的代码)

你已经在正确使用 snake_case 了,后续保持一致即可:

  1. 新增变量/函数时,继续遵循「全小写 + 下划线分隔」,如 byte_datacheck_hex_valid
  2. 常量用「全大写 snake_case」,如 MAX_32BIT_SIGNED = 2147483647
  3. 类/类型名用 PascalCase(如 HexConverter 类),与 snake_case 区分开。

示例扩展(新增符合 snake_case 的代码):

python 复制代码
# 常量(全大写 snake_case)
MAX_UINT8 = 255
MIN_INT32 = -2147483648

# 变量(snake_case)
input_hex = "0xFF00"
little_endian_data = b'\x78\x56\x34\x12'

# 函数(snake_case)
def check_hex_length(hex_str: str, bit_width: int) -> bool:
    """检查十六进制字符串长度是否符合指定位数"""
    cleaned = hex_str.lstrip("0x").lstrip("0X")
    expected_length = bit_width // 4  # 1字节=8位=2个十六进制字符
    return len(cleaned) == expected_length

总结

snake_case 是 Python 中最常用的命名规范,核心是「全小写 + 下划线分隔」。你之前的代码(如 hex_to_int32hex_str)已经完全符合该规范,后续只需保持一致性,就能让代码更易读、更符合 Python 社区习惯~

相关推荐
小羊失眠啦.2 小时前
Rust核心库(core)深度解析:无依赖基石的设计与实践
数据库·算法·rust
天平2 小时前
开发了几个app后,我在React Native用到的几个库的推荐
android·前端·react native
百***97642 小时前
LangChain-08 Query SQL DB 通过GPT自动查询SQL
数据库·sql·langchain
q***21602 小时前
【SQL技术】不同数据库引擎 SQL 优化方案剖析
数据库·sql
消失的旧时光-19432 小时前
Kotlinx.serialization 对多态对象(sealed class )支持更好用
java·服务器·前端
九河云2 小时前
不同级别华为云代理商的增值服务内容与质量差异分析
大数据·服务器·人工智能·科技·华为云
少卿2 小时前
React Compiler 完全指南:自动化性能优化的未来
前端·javascript
广州华水科技2 小时前
水库变形监测推荐:2025年单北斗GNSS变形监测系统TOP5,助力基础设施安全
前端
广州华水科技2 小时前
北斗GNSS变形监测一体机在基础设施安全中的应用与优势
前端