Python变量命名应使用snake_case,真实反映数据含义,布尔变量加is_/has_/can_前缀,列表用复数名,常量全大写,避免关键字、内置名及单字符命名。

Python变量命名不是随便起个名字就行,核心是让别人(包括未来的你)一眼看懂它存的是什么,同时符合Python社区普遍接受的风格习惯。
用小写字母加下划线(snake_case)
这是PEP 8官方推荐的变量和函数命名方式,清晰、易读、无歧义。
- ✅ 推荐:
user_name、max_retries、is_active、total_price_in_usd - ❌ 避免:
userName(驼峰式,适合Java/JS)、USERNAME(全大写,通常用于常量)、1st_name(不能以数字开头)、class(关键字不能用)
名字要真实反映数据含义
别为了省字符牺牲可读性。缩写仅在广泛公认时可用(如id、url、num),否则宁可写全。
- ✅ 清晰:
customer_order_count、is_email_verified、api_response_data - ❌ 模糊:
cnt(count?contact?)、tmp(临时什么?)、data(太泛,没信息量)
区分变量类型,用命名暗示用途
不用类型注解时,名字本身可以传递重要线索:
立即学习“Python免费学习笔记(深入)”;
- 布尔变量加
is_、has_、can_等前缀:is_logged_in、has_permission - 列表或集合优先体现复数含义:
user_ids、error_messages(而不是user_id_list) - 常量全大写加下划线:
MAX_RETRY_ATTEMPTS、API_TIMEOUT_SEC
避开常见陷阱
有些命名看似没问题,实际会埋坑:
- 不使用单字符(除循环索引
i、j、k等极短作用域外):x、v、l(易与数字1混淆) - 避免和内置函数/类型重名:
str、list、dict、id——会覆盖原功能,引发隐蔽bug - 中文或拼音尽量不用:
用户名、yonghu_ming——影响协作、工具兼容性和编码一致性
好名字不是一蹴而就,多读优秀开源项目(比如requests、flask源码)里的变量名,慢慢就形成直觉了。不复杂但容易忽略。










