用途:为编写地道、现代 Python 代码提供指导,适用于用户询问 Python 最佳实践、Pythonic 代码、Python 模式、惯用法、类型提示、dataclass 等场景。
主要能力:介绍 3.9+ 现代特性,包括类型提示(静态分析)、dataclass(结构化数据,自动生成 init、repr 等)、上下文管理器(with 保证资源清理)、装饰器(横切关注点)、async/await(并发 I/O)。类型提示部分给出新旧语法对照,如 Optional[str] 对应 str | None、Union[str, int] 对应 str | int、List[str] 对应 list[str]、Dict[str, int] 对应 dict[str, int],并强调类型提示仅用于工具(mypy、IDE),运行时不做强制。dataclass 部分对比 @dataclass(可变数据带方法)、@dataclass(frozen=True)(不可变、可哈希)、NamedTuple(轻量、元组语义)、TypedDict(已知键的字典)、Pydantic(校验与序列化)。上下文管理器用于文件、连接、锁、事务等需清理的资源,模式为在 enter 获取、在 exit 释放,或用 @contextmanager 配合 yield。装饰器涵盖简单装饰器(日志、计时)、带参数装饰器、类装饰器以及 @functools.wraps 保留元数据。异步部分说明适用 I/O 密集型操作(HTTP 请求、数据库查询、文件 I/O),不适用于 CPU 密集型(应改用 multiprocessing),并列出 async def、await、asyncio.gather()、async with、async for 的用途。
惯用法:if len(x) > 0 改为 if x;for i in range(len(x)) 改为 for item in x 或 enumerate();d.has_key(k) 改为 k in d;LBYL 改为 EAFP;手动交换改为 a, b = b, a。
项目结构:推荐 src/ 布局,包含 src/my_package/、tests/、pyproject.toml、README.md,以避免导入混淆。
工具链:ruff(快速 linter 与格式化)、mypy(类型检查)、pytest(测试)、uv/pip(依赖)。
限制:资料未提供具体安装命令、版本兼容细节、收费或平台信息,暂未提供。