logo
59

类型注解

⏱️ 30分钟

类型注解(Typing):提升可读性与协作质量

你现在可能会困惑什么

“Python 是动态类型,写 type hints 有必要吗?”

个人小脚本影响小;多人协作和长期维护中,typing 明显减少低级错误。

一句话定义

类型注解是对参数、返回值、变量类型的显式说明,便于 IDE 与静态检查。

生活类比

代码加类型像给收纳盒贴标签,别人接手更快。

最小可运行例子

def greet(name: str, age: int) -> str:
    return f"Hello {name}, age {age}"

课堂小测(5 分钟)

  1. 给 3 个函数补参数/返回类型。
  2. listdict 补泛型。
  3. Optional 表达可空字段。

课堂小测参考答案与判分点

  • 参考答案方向:能写出可运行代码,并覆盖题目中的核心条件与边界输入。
  • 判分点 1(正确性):主流程结果正确,关键分支可执行。
  • 判分点 2(可读性):变量命名清晰,结构不过度嵌套。
  • 判分点 3(健壮性):对空值、类型错误或异常输入有基础保护。

迁移任务(课后)

选一段旧代码补完整 type hints,并跑一次 mypy

本节验收标准

你能独立做到:

  • 写基础类型注解
  • 使用 Optional 与容器泛型
  • 用静态检查发现类型问题

常见报错与调试步骤(新手版)

  • 报错看不懂:先读最后一行错误类型(如 TypeErrorNameError),再回到对应代码行定位。
  • 不确定变量值:在关键位置临时 print(变量, type(变量)),先确认数据是否符合预期。
  • 改了代码却没生效:确认文件已保存、运行的是当前文件、终端环境(venv)是否正确。

常见误区

  • 误区:写了 typing 运行时自动拦截错误。
  • 正解:typing 主要用于静态分析与可读性。