AgentSkillsCN

python-best-practices

Python 编程的最佳实践。当用户编写或审查 Python 代码时,可使用此技能。涵盖类型提示、错误处理以及常见的编程模式。

SKILL.md
--- frontmatter
name: python-best-practices
description: Python coding best practices. Use when writing or reviewing Python code. Covers type hints, error handling, and common patterns.
license: MIT
metadata:
  author: plan-cascade
  version: "1.0.0"

Python Best Practices

Code Style

RuleGuideline
Formatterruff format or black
Linterruff check with strict rules
Type hintsAlways for public APIs
DocstringsGoogle or NumPy style

Type Hints

python
def process(items: list[str], max_count: int = 10) -> dict[str, int]: ...
def find_user(user_id: int) -> User | None: ...

Error Handling

RuleGuideline
Specific exceptionsNever bare except:
Context managersUse with for resources
Early returnValidate inputs, fail fast
python
# Good
try:
    result = process(data)
except ValidationError as e:
    logger.warning(f"Validation failed: {e}")
    return default

Project Structure

code
src/package_name/
├── __init__.py
├── core/
└── py.typed
tests/
├── conftest.py
└── test_*.py
pyproject.toml

Common Patterns

PatternUsage
@dataclassData containers
@propertyComputed attributes
GeneratorsMemory-efficient iteration
functools.cacheMemoization

Anti-Patterns

AvoidUse Instead
Mutable default argsNone default, create inside
import *Explicit imports
Global stateDependency injection
python
# Bad: def add(item, items=[]): ...
# Good:
def add(item, items=None):
    items = items or []
    items.append(item)
    return items

Tools

ToolPurpose
pytestTesting
ruffLinting + formatting
mypyType checking
uvDependencies