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

singledispatch:按参数类型分派函数

本机真实验证singledispatch沿MRO链条查找handler,子类没单独注册也能自动命中父类handler,并量出这份灵活性真实的调用开销。

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

defaultdict、Counter 和 ChainMap:collections 怎么选

本机真实验证defaultdict的[]读取会插入幽灵key而.get()不会,Counter减法丢弃非正数结果,以及ChainMap是活视图而非快照。

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

heapq:优先队列为什么不是完整的堆排序

本机真实检查heapify后的底层列表,证明堆序是比完全排序弱得多的不变量,完全排序需要付出跟sorted()同量级的代价。

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

bisect:有序列表如何快速插入和查找

本机真实验证bisect_left/right对重复值区间的边界定位,并故意对乱序数据调用bisect,证明它不会报错只会静默给出毫无意义的结果。

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

pathlib:路径对象如何替代字符串拼路径

本机真实验证Path的/运算符在右操作数是绝对路径时会完全丢弃左边,这是一个真实存在的路径穿越隐患,并对比.和..的处理差异。

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

tempfile:临时文件什么时候会自动删除

本机真实验证临时文件在打开期间被重新打开的平台相关行为,以及TemporaryDirectory即使在异常场景下依然可靠的自动清理机制。

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

subprocess:Python 如何启动并管理外部进程

本机真实构造一段包含shell特殊字符的字符串,验证shell=True字符串拼接会真实发生命令注入,shell=False列表参数则完全免疫,并确认timeout参数会真的主动终止子进程。

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

signal:进程收到信号后到底发生什么

本机真实给自己发送不同信号,验证自定义信号处理函数的真实触发、SIGINT默认转换成可捕获的KeyboardInterrupt,以及信号处理机制绑死在主线程上的限制。

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

socket:一次 TCP 连接如何从 Python 代码走到内核

本机真实建一条 TCP 连接,每 0.08 秒采样一次 netstat:服务端从没调用 accept(),客户端的 connect() 已经在 0.377 ms 内返回且两端都是 ESTABLISHED;三次 send 被合成一次 recv;并按阶段记录 CLOSE_WAIT / FIN_WAIT_2 / TIME_WAIT 出现的位置。

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

selectors:一个线程如何监听多个 socket

本机用 selectors(macOS 下默认是 KqueueSelector)让一个线程同时监听 5 个 socket,逐轮记录 select() 的返回;验证水平触发下不读数据会被重复通知、写事件与内核发送缓冲区(本机 626168 字节)的关系,并对比 200 个连接一个线程和 201 个线程的 echo 耗时。

Python 标准库 网络 I/O多路复用 真实验证 动画演示
Python 2026-09-29

sqlite3:Python 内置数据库如何执行事务

本机真实验证 sqlite3 模块的隐式事务(INSERT 才 BEGIN,SELECT 和 DDL 不会)、未提交数据对其他连接不可见、第二个写连接得到 database is locked;读游标未读完会让默认日志模式下的 commit 失败而 WAL 模式不会;逐条 commit 每行 266 µs,放进一个事务每行 0.8 µs。

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

pickle:为什么反序列化不可信数据很危险

本机用一个只写标记文件的无害载荷真实验证:pickle.loads 在反序列化时就执行了 os.system,返回的是 0 而不是原对象;用 pickletools 反汇编 54 字节的载荷,用 allowlist 的 find_class 拦截,并把每条 opcode 之后的真实栈状态做成逐步演示。

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