Python变量命名规范如何做_可读性与风格讲解【指导】

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

Python变量命名不是随便起个名字就行,核心是让别人(包括未来的你)一眼看懂它存的是什么,同时符合Python社区普遍接受的风格习惯。

用小写字母加下划线(snake_case)

这是PEP 8官方推荐的变量和函数命名方式,清晰、易读、无歧义。

  • ✅ 推荐:user_namemax_retriesis_activetotal_price_in_usd
  • ❌ 避免:userName(驼峰式,适合Java/JS)、USERNAME(全大写,通常用于常量)、1st_name(不能以数字开头)、class(关键字不能用)

名字要真实反映数据含义

别为了省字符牺牲可读性。缩写仅在广泛公认时可用(如idurlnum),否则宁可写全。

  • ✅ 清晰:customer_order_countis_email_verifiedapi_response_data
  • ❌ 模糊:cnt(count?contact?)、tmp(临时什么?)、data(太泛,没信息量)

区分变量类型,用命名暗示用途

不用类型注解时,名字本身可以传递重要线索:

  • 布尔变量加is_has_can_等前缀:is_logged_inhas_permission
  • 列表或集合优先体现复数含义:user_idserror_messages(而不是user_id_list
  • 常量全大写加下划线:MAX_RETRY_ATTEMPTSAPI_TIMEOUT_SEC

避开常见陷阱

有些命名看似没问题,实际会埋坑:

  • 不使用单字符(除循环索引ijk等极短作用域外):xvl(易与数字1混淆)
  • 避免和内置函数/类型重名:strlistdictid——会覆盖原功能,引发隐蔽bug
  • 中文或拼音尽量不用:用户名yonghu_ming——影响协作、工具兼容性和编码一致性

好名字不是一蹴而就,多读优秀开源项目(比如requests、flask源码)里的变量名,慢慢就形成直觉了。不复杂但容易忽略。