知其然,知其所以然
Python 2026-09-29

TypeVar:泛型函数如何保持类型关系

本机真实用mypy检查带TypeVar的泛型函数,验证同类型调用被精确推断、混合类型调用退化成object,以及运行时对这些标注完全无视。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

Protocol:Python 如何实现结构化类型

本机真实验证Protocol的类型兼容性判定只看方法签名不看继承关系,isinstance在runtime_checkable下同样不依赖__mro__。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

ParamSpec:装饰器如何保留原函数参数类型

本机真实对比Callable[...,R]和ParamSpec两版装饰器,验证前者会让被装饰函数丢失参数类型检查,后者完整保留。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

TypeGuard:类型检查器如何理解自定义判断函数

本机真实对比返回bool和返回TypeGuard的判断函数,验证只有TypeGuard能让mypy在if判断后正确收窄元素类型。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

TypedDict:字典如何获得静态字段约束

本机真实用mypy验证TypedDict的必填/可选字段约束,并证明运行时它就是一个普通dict,isinstance检查会直接抛TypeError。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

dataclass、NamedTuple 和 TypedDict 怎么选

本机真实用sys.getsizeof对比四种数据结构写法的内存占用和可变性,发现NamedTuple比dataclass更重、TypedDict最重也最不设防。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

typing.overload:一个函数如何拥有多组类型签名

本机真实验证overload按参数类型精确匹配返回类型,同时证明运行时真正执行的永远只有那份未被装饰的实现。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

运行时类型检查和静态类型检查的边界

本机真实用cast()验证类型谎言在运行时零成本、延迟到真正使用时才暴露,再用isinstance验证参数化泛型的类型擦除边界。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

mypy 为什么有时推断不出类型

本机真实对比有无类型标注的函数在调用同一个不存在的方法时mypy的反应差异,找出隐式Any这个最常见的检查盲区。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

类型注解会不会影响 Python 运行速度

本机真实验证Python 3.14的PEP 649延迟注解求值机制,注解表达式的真正计算成本被推迟到首次访问__annotations__那一刻。

Python 类型系统 真实验证 动画演示
Python 2026-09-29

itertools:无限迭代器、分组和笛卡尔积

本机真实验证count()的有状态无限性、groupby只按连续元素分组的经典陷阱,以及product代表百万级组合空间时近乎零成本的懒惰内存占用。

Python 标准库 真实验证 动画演示
Python 2026-09-29

functools.partial:预先绑定参数的函数对象

本机真实对partial对象再包一层partial,验证.func/.args/.keywords内省属性,以及嵌套partial在构造时展平合并到最底层函数的实现细节。

Python 标准库 真实验证 动画演示
京ICP备2026067502号-1京公网安备11010502063487号