在上篇我们看到了 ThreadLocal 变量的简单使用,中篇对 python 中 ThreadLocal 的实现进行了分析,但故事还没有结束。本篇我们一起来看下 Werkzeug 中 ThreadLocal 的设计。 Werkzeug 作为一个 WSGI 工具库,由于一些方面的考虑,并没有直接使用 python 内置的 ThreadLocal 类,而是自己实现了一系列 Local 类。包括简单的 Local,以及在此基础上实现的 LocalStack,LocalManager 和 LocalProxy。接下来我们一起来看看这些类的使用方式,设计的初衷,以及具体的实现技巧。