[智能体-327]:Annotated 语法详解 Annotated是类型注解增强工具给已有类型附加元数据、描述、校验规则、文档等额外信息不改变原类型本身。一、基础导入python运行# Python 3.9 标准库 from typing import Annotated二、核心语法python运行Annotated[类型, 元数据1, 元数据2, ...]第一个参数原生类型int/str/list/ 自定义类等后面所有参数任意元数据字符串、对象、函数、枚举等运行时不强制校验仅存储附加信息由第三方库FastAPI、Pydantic、mypy解析使用三、基础示例1. 加文字描述最常用python运行from typing import Annotated # 给 int 附加说明 Age Annotated[int, 用户年龄范围 0-120] def get_age() - Age: return 25 # 本质还是 int print(type(get_age())) # class int2.多个元数据叠加python运行Username Annotated[ str, 登录用户名, {min_length: 4, max_length: 20}, # 字典规则 不可包含特殊字符 ]四、实战场景主流用法场景 1FastAPI 接口参数高频搭配参数校验、说明、示例python运行from fastapi import FastAPI from typing import Annotated app FastAPI() app.get(/user) def read_user( age: Annotated[int, 用户年龄, 0, 120] ): return {age: age}场景 2Pydantic 数据模型校验结合Field做约束python运行from pydantic import BaseModel, Field from typing import Annotated # 类型 校验规则 描述 Score Annotated[float, Field(ge0, le100, description考试分数)] class Student(BaseModel): name: str score: Score场景 3类型别名复用统一规范全局类型python运行from typing import Annotated Phone Annotated[str, 手机号11位数字] Email Annotated[str, 标准邮箱格式] class User: phone: Phone email: Email五、取值元数据运行时读取附加信息用__metadata__属性获取python运行from typing import Annotated Info Annotated[int, 数值类型, 100] # 取出所有附加元数据 print(Info.__metadata__) # (数值类型, 100) # 取出基础类型 print(Info.__origin__) # class int六、版本说明Python 3.9正式加入typing.AnnotatedPython 3.8 及以下需安装typing_extensionsbash运行pip install typing-extensions导入改为python运行from typing_extensions import Annotated七、总结口诀格式Annotated[原类型, 附加信息...]作用给类型打标签、加规则、写文档本质原类型不变元数据供框架解析主力场景FastAPI、Pydantic、静态类型文档