mirror of
https://github.com/awesome-skills/code-review-skill.git
synced 2026-03-22 02:19:32 +08:00
- 将 SKILL.md 从 1774 行精简到 ~180 行 - 新增 references/react.md:React 19、RSC、TanStack Query v5 - 新增 references/vue.md:Vue 3 Composition API - 新增 references/rust.md:所有权、unsafe、异步 - 新增 references/typescript.md:类型安全、async/await - 新增 references/python.md:常见陷阱 - 更新 README.md:说明按需加载机制 优化效果: - 初始加载:~40K tokens → ~4K tokens - 支持 Progressive Disclosure 按需加载
1.6 KiB
1.6 KiB
Python Code Review Guide
Python 代码审查指南,覆盖常见陷阱和最佳实践。
常见陷阱
可变默认参数
# ❌ Mutable default arguments
def add_item(item, items=[]): # Bug! Shared across calls
items.append(item)
return items
# ✅ Use None as default
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
异常捕获过宽
# ❌ Catching too broad
try:
result = risky_operation()
except: # Catches everything, even KeyboardInterrupt!
pass
# ✅ Catch specific exceptions
try:
result = risky_operation()
except ValueError as e:
logger.error(f"Invalid value: {e}")
raise
可变类属性
# ❌ Using mutable class attributes
class User:
permissions = [] # Shared across all instances!
# ✅ Initialize in __init__
class User:
def __init__(self):
self.permissions = []
Python Review Checklist
数据结构
- 没有使用可变默认参数(list、dict、set)
- 类属性不是可变对象
- 理解浅拷贝和深拷贝的区别
异常处理
- 捕获特定异常类型,不使用裸
except: - 异常信息有意义,便于调试
- 必要时重新抛出异常(
raise)
性能
- 大数据集使用生成器而非列表
- 避免循环中重复创建对象
- 使用
collections模块的高效数据结构
代码风格
- 遵循 PEP 8 风格指南
- 使用类型注解(type hints)
- 函数和类有 docstring