threading
模块中的RLock、Semaphore和Event等名称都是工厂函数,而实现类的名称则以下划线为前缀。
工厂函数只是将它们收到的所有参数传递给底层构造函数。
那么这样做有什么好处呢?
thread-sig 档案似乎已经从 Internet 上消失了(*),但我很确定它会阻止您对未设计为子类的事物进行子类化(您真的不想意外破坏同步原语) ,并且该模块已经足够老了,以至于在添加它时您无法使用新型类技巧来做到这一点。
还要注意 egRLock
有多个实现类。
*) 好吧,我在希腊的一个 FTP 服务器上发现了一些残留物,但没有原始规格。
没有真正的优势。
Guido添加了模块 1998;第一个版本已经包含了这些工厂函数。也许他对那些工厂函数有计划,也许他正在研究 Java 实现并复制了一些习语,也许他想通过脑后的 C 重新实现来使事物可插入。
我们只能猜测,或者直接询问 Guido。