类型标注/type annotation

这是 类型标注 语法,英文叫 type annotation

py 复制代码
user: User = {"name": "Alice", "age": 20}

可以拆成三部分:

复制代码
变量名 : 类型 = 值

也就是:

py 复制代码
user : User = {"name": "Alice", "age": 20}

意思是:

创建一个变量 user,它的类型应该是 User,值是这个字典。

这里的 User 如果是前面定义的 TypedDict

py 复制代码
from typing import TypedDict

class User(TypedDict):
    name: str
    age: int

那这句:

py 复制代码
user: User = {"name": "Alice", "age": 20}

就是在告诉 Python / IDE / 类型检查器:

user 应该是一个符合 User 结构的字典,也就是必须有 name: strage: int

它和普通写法相比:

py 复制代码
user = {"name": "Alice", "age": 20}

运行时效果基本一样。区别是加了类型信息。

比如你写错:

py 复制代码
user: User = {"name": "Alice", "age": "20"}

Python 运行时通常不会报错,但 VS Code、PyCharm、Pyright、mypy 这类工具会提醒你:

py 复制代码
age 应该是 int,但你给了 str

再比如少字段:

py 复制代码
user: User = {"name": "Alice"}

类型检查器也会提醒你:缺少 age

这个语法也可以用于普通类型:

py 复制代码
name: str = "Alice"
age: int = 20
price: float = 9.99
is_active: bool = True
names: list[str] = ["Alice", "Bob"]
scores: dict[str, int] = {"math": 90, "english": 85}

还有一种只声明、不赋值的写法:

py 复制代码
user: User

意思是:我先声明这里会有一个 User 类型的变量,但还没有赋值。实际初学时少用这个,容易踩"变量还没赋值"的坑。

重点记住一句:

py 复制代码
user: User = ...

不是"把 User 赋值给 user",而是"给变量 user 加一个类型说明"。

它主要帮助你、IDE、类型检查器读懂代码,Python 本身运行时不会严格执行这个类型。

相关推荐
郝学胜-神的一滴3 小时前
Effective Python 条款4:字符串格式化大乱斗
开发语言·网络·python·程序人生·软件工程
ynchyong3 小时前
Python 字符组合生成器:product 与 permutations 的实战对比
python·工具·字符串生产
benchmark_cc3 小时前
1000只ETF的5分钟K线如何批量获取?QuantDash分页策略与高性能Python实践
开发语言·人工智能·爬虫·python·算法·quantdash·量化数据源
sel_93 小时前
【PEFT】参数高效微调(PEFT)技术详解:从原理到 LoRA/QLoRA 实战
人工智能·python·深度学习·算法·机器学习·参数高效微调
月光船幽幽4 小时前
带刺反馈引擎:唤醒深层意图
人工智能·python
大模型码小白4 小时前
AI 提示词专栏:使用系统指令(System Prompt)实现全局约束
java·大数据·运维·开发语言·人工智能·python·prompt
烂蜻蜓4 小时前
Flask入门教程(八):视图函数详解——请求处理与响应的核心
后端·python·flask
河南凹凸环境艺术设计5 小时前
民宿酒店设计实力公司
大数据·人工智能·python
小江的记录本5 小时前
【AI Agent】《2026年9月 AI Agent全栈开发技术选型专项面试宝典》
java·spring boot·python·spring·ai·面试·ai编程
春涧草茶5 小时前
慢就是快-11-1数据容器 | 列表
python