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

concurrent.futures:线程池和进程池到底怎么调度任务

本机真实用同样4个CPU密集任务和4个IO密集任务分别跑ThreadPoolExecutor和ProcessPoolExecutor,验证CPU密集任务线程池2.13秒/进程池0.68秒,IO密集任务两者都在0.3秒左右。

Python 真实验证 动画演示
Python 2026-09-25

with 语句:上下文管理器如何保证资源释放

本机真实用自定义__enter__/__exit__验证:正常退出、内部抛异常、__exit__返回True吞掉异常,三种场景下__exit__真实都会被调用,第三种场景真实能让外面完全感知不到异常发生过。

Python 真实验证 动画演示
Python 2026-09-25

contextlib.contextmanager:一个生成器怎么变成上下文管理器

本机真实对比没有try/finally和有try/finally的@contextmanager生成器,验证前者在内部异常时清理代码真实会被跳过(资源泄漏),后者真实总能执行到。

Python 真实验证 动画演示
Python 2026-09-25

描述器 Descriptor:property 和绑定方法背后的机制

本机真实实现一个数据描述器拦截属性读写,验证即使直接往实例__dict__里塞同名key,读取真实依然会被描述器拦截——数据描述器的优先级真实高于实例字典,property本身也真实是用这套协议实现的。

Python 真实验证 动画演示
Python 2026-09-25

__getattribute__ 和 __getattr__:属性查找失败后发生了什么

本机真实统计__getattribute__和__getattr__的真实调用次数:8次属性访问全部真实触发__getattribute__,只有3次真正失败的访问触发了__getattr__,并真实复现了__getattr__里误用self.x导致的无限递归陷阱。

Python 真实验证 动画演示
Python 2026-09-25

list 底层扩容:为什么 append 通常是 O(1)

本机真实用sys.getsizeof追踪list每次真实扩容的元素数,发现扩容点是1、5、9、17、25...(超额分配),append 10万次真实只要0.0039秒,而insert(0,x) 10万次真实要2.37秒,差了608倍。

Python 真实验证 动画演示
Python 2026-09-25

set 底层实现:哈希冲突和删除标记怎么处理

本机真实验证set删除990/1000个元素后内部表大小完全不变,真实构造5个哈希值相同但值不同的对象证明冲突不丢数据,再真实测出全冲突场景下查找慢了约2000倍。

Python 真实验证 动画演示
Python 2026-09-25

小整数缓存与字符串驻留:is 为什么有时看起来等于 ==

本机真实用函数调用避开编译期常量折叠,验证运行期算出的100(在-5~256区间内) is 字面量100为True,而运行期算出的1000(超出区间) is 字面量1000为False——精确验证小整数缓存的真实边界。

Python 真实验证 动画演示
Python 2026-09-25

浅拷贝与深拷贝:deepcopy 到底复制了什么

本机真实用嵌套列表验证:修改原始对象的内层列表,浅拷贝真实跟着一起变了,深拷贝真实完全不受影响——用id()真实确认浅拷贝的内层元素跟原对象是同一个对象。

Python 真实验证 动画演示
Python 2026-09-25

闭包与自由变量:函数为什么能记住外部变量

本机真实复现循环创建闭包的经典陷阱:3个lambda真实全部返回2而不是期望的0,1,2,用__closure__真实看到底层的cell对象,再验证用默认参数在定义时真实绑定值能修复这个问题。

Python 真实验证 动画演示
Python 2026-09-25

可变默认参数:为什么 def f(x=[]) 会留下历史数据

本机真实连续三次调用append_to(item)不传target,验证默认列表真实在调用之间被共享,第二次调用真实带着第一次的历史数据;用id()和__defaults__真实确认背后是同一个对象。

Python 真实验证 动画演示
Python 2026-09-25

__slots__:减少对象内存占用的代价

本机真实用tracemalloc测10万个实例的总内存:没有__slots__真实占12.20MB,有__slots__真实只要8.38MB,省了约31%;但单个实例的sys.getsizeof真实显示两者一样,揭示了getsizeof真实的局限。

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