类型注解与 mypy(Python 从精通到入门 · 10)
类型注解不是给解释器看的,是给「下一个读代码的人」和「静态检查工具」看的——它能在一个 Bug 跑到生产环境之前就把它拦下来。
来自一线开发者的实践、思考与复盘。
类型注解不是给解释器看的,是给「下一个读代码的人」和「静态检查工具」看的——它能在一个 Bug 跑到生产环境之前就把它拦下来。
优化的第一原则不是"写得更快",而是"先测量"。这一篇教你用工具找到真正的瓶颈,然后只改那一处。
单线程扛住上万并发连接,靠的不是魔法,而是一个事件循环 + 一堆会"让路"的协程。这一篇把 await 底下的机制拆开给你看。
知道了 GIL 的脾气,这一篇讲怎么真刀真枪地用线程和进程:锁住共享状态、跑满多核、在进程间传递数据,以及 Windows 上那些会让你踩坑的细节。
GIL 不是 Python 的缺陷,而是 CPython 的一个实现取舍。搞清它保护什么、不保护什么,你才知道该用线程、进程还是协程。
for x in y 背后只有三个约定。生成器把它们包装成语法糖,协程又在生成器上长出来——三者是同一条演化链。
with open(...) 里的 with 到底是什么?它是一套「进入—退出」协议,管的是资源、状态和异常。
装饰器是「接收函数、返回函数」的普通函数。就这一句话,撑起了缓存、重试、鉴权、路由——以及大半个框架世界。
obj.x 这行代码背后有一条严格的查找链。理解它,你就理解了 property、方法绑定、字段验证——以及为什么它们能工作。
class 不只是一段声明,它是一台由 type 驱动的类工厂。看懂这台机器,你就能亲手造类。