用途:帮助在 Python 项目中利用类型系统,在静态分析阶段发现错误,让类型注解成为可被工具自动校验的文档。适用于为现有代码添加类型提示、创建泛型可复用类、用 Protocol 定义结构化接口、配置 mypy 或 pyright 严格检查、理解类型收窄与守卫,以及构建类型安全的 API 与库。
主要能力:类型注解(为函数参数、返回值与变量声明类型);泛型(跨类型保留类型信息);Protocol(无需继承的结构化接口,即带类型安全的鸭子类型);类型收窄(用守卫与条件在代码块内缩小类型)。
必要用法:为所有公开函数、方法与类添加注解;Python 3.10+ 优先使用 User | None 联合语法,3.9 可用 Optional/Union;用条件判断收窄类型,例如先判断 user is None 再访问属性;用 TypeVar 与 Generic 编写泛型类,可用 bound 限制类型参数;用 Protocol 与 @runtime_checkable 定义结构化接口;用 type 语句或 TypeAlias 创建类型别名;用 Callable 标注回调。配置方面,可在 pyproject.toml 的 [tool.mypy] 中设置 strict = true、warn_return_any、warn_unused_ignores、disallow_untyped_defs、disallow_incomplete_defs、no_implicit_optional,并在 CI 中运行 mypy --strict 或 pyright。
适用场景:为已有代码库增量添加类型;编写类型安全的库与 API;设计泛型仓库、Result 容器等可复用结构;统一团队类型检查规范。
限制:资料未提供该技能的具体安装命令、版本要求、收费方式或平台支持信息;示例中的部分代码依赖 Python 3.10+ 或 3.12+ 语法,旧版本需使用替代写法;Any 应尽量少用,仅在真正动态数据或对接无类型第三方代码时可接受。