python类定义应遵循pep 8:类名用capwords(如userprofile);类内顺序为文档字符串→类变量→__init__→特殊方法→公共方法→私有方法;方法间空一行,类间空两行;实例方法首参为self且不换行对齐。

Python 中定义类时,代码风格直接影响可读性、协作效率和长期维护成本。核心原则是遵循 PEP 8,并兼顾 Pythonic 表达习惯。
类名用 CapWords(驼峰式)
类名必须采用首字母大写的驼峰命名法,单词间不加下划线,且避免缩写或模糊简称。
- ✅ 正确:UserProfile、DataProcessor、HTTPClient
- ❌ 错误:user_profile(应为函数/变量名)、userprofile(缺少大小写分隔)、UProfile(缩写难懂)
类内结构保持清晰顺序
一个类的定义应按逻辑顺序组织:文档字符串 → 类变量 → 实例变量(在 __init__ 中声明)→ 特殊方法 → 公共方法 → 受保护/私有方法。
- 类变量(如 DEFAULT_TIMEOUT)放在 __init__ 之前,全大写加下划线
- __init__ 方法紧随类定义后,作为第一个实例方法
- 双下划线开头的方法(如 __str__)建议集中放在靠前位置,便于快速识别协议实现
- 私有方法(单下划线开头,如 _validate_input)放在公共方法之后,体现封装意图
方法之间空一行,类之间空两行
这是 PEP 8 明确要求的视觉分隔方式,帮助读者快速定位作用域边界。
- 类内部各方法之间用 一个空行 分隔(包括 __init__ 与其他方法)
- 两个独立类定义之间必须用 两个空行
- 类与上方的模块级注释、导入语句之间也应空两行
方法参数与 self/cls 的规范写法
实例方法第一个参数必须是 self,类方法第一个参数必须是 cls,且它们**不参与命名逻辑,不加类型提示前缀,也不换行**。
- ✅ 推荐:def save(self, user_id: int, data: dict) -> bool:
- ❌ 避免:def save( self, user_id: int, data: dict) -> bool:(参数强行对齐反而降低可读性)
- 若参数过多,优先用数据类或字典解包,而非把 self 拆到下一行











