Python 命名规范(PEP 8 标准)

        Python 社区最通用的命名规范来自 PEP 8(Python 增强提案第 8 号),下面按不同元素分类说明,兼顾规则和实际示例:

1. 变量 & 函数 & 方法(小写 + 下划线)
  • 规则
    • 全部小写,单词之间用下划线 _ 分隔(蛇形命名法,snake_case);
    • 避免单字符命名(除非是循环变量如 i/j、临时变量如 x/y);
    • 变量名要见名知意,避免拼音 / 无意义字符(如 a123)。
  • 示例
# 变量
user_name = "王二"  # 正确:小写+下划线,见名知意
age = 25           # 正确:简单变量直接小写
userName = "李四"  # 错误:混合大小写(这是Java的驼峰法,Python不推荐)
u = "王五"         # 错误:单字符无意义

# 函数/方法
def calculate_sum(a, b):  # 正确:小写+下划线
    return a + b

def get_user_info():      # 正确:动词+名词,符合语义
    return {"name": "张三", "age": 25}
2. 类 & 异常(大驼峰)
  • 规则
    • 每个单词首字母大写,无下划线(大驼峰命名法,PascalCase);
    • 异常类命名需以 Error 结尾(如 ValueError)。
  • 示例
# 普通类
class UserInfo:  # 正确:大驼峰
    def __init__(self, name, age):
        self.user_name = name  # 实例变量仍用蛇形
        self.user_age = age

# 异常类
class InputError(Exception):  # 正确:大驼峰+Error结尾
    pass
3. 常量(全大写 + 下划线)
  • 规则
    • 全部大写,单词之间用下划线分隔;
    • 通常定义在模块顶部,代表不可修改的值(Python 无真正常量,仅靠规范约束)。
  • 示例
MAX_RETRY = 3       # 最大重试次数
PI = 3.1415926      # 圆周率
DEFAULT_TIMEOUT = 10  # 默认超时时间
4. 特殊场景命名
场景 规则 示例
私有变量 / 方法 开头加单个下划线 _(约定) _private_var = 10
强私有变量 / 方法 开头加双下划线 __(命名改写) __strong_private = 20
魔术方法 / 属性 前后双下划线 __xx__(系统保留) __init____str__
模块 / 包名 小写,尽量简短,无下划线 mathrequests
5. 避坑提醒
  • 不要用 Python 关键字命名(如 ifforclassdef 等);
  • 不要以数字开头(如 123var 错误,var123 正确);
  • 命名长度适中:太短(如 x)无意义,太长(如 user_name_and_age_and_gender)冗余;
  • 中英文混用:优先用英文,避免拼音(如 yonghu 不如 user 易读)。

总结

  1. 核心规则:变量 / 函数用 snake_case(小写 + 下划线),类用 PascalCase(大驼峰),常量用 UPPER_SNAKE_CASE(全大写 + 下划线);
  2. 约定规则:私有元素开头加 _,魔术方法前后加 __,模块 / 包名小写简短;
  3. 通用原则:见名知意、符合 PEP 8 标准,避免关键字和无意义命名。

遵循这些规范,代码会更符合 Python 社区的习惯,也更容易被自己和他人理解、维护。

更多推荐