Le mercredi 03 novembre 2010 à 08:08 -0700, Guido van Rossum a écrit :
On Wed, Nov 3, 2010 at 1:58 AM, Antoine Pitrou
wrote: On Wed, 3 Nov 2010 13:26:27 +0800 Kristján Valur Jónsson
wrote: And why are there factory functions in threading.py and not classes?
I'm not sure, but it looks like a poor man's way of discouraging subclassing.
Indeed; the intention was that it should be possible to replace the various lock classes with built-in objects without having to worry about continuing subclasses. While this was done before built-in objects could be subclassed, even today I still like to prevent subclassing the lock classes since the ability to subclass still constrains the implementation of the built-in type somewhat. I think it's more important to have the possibility to switch in a faster platform-specific lock implementation. I do admit that so far this hasn't happened...
Actually, it has (with both Lock and RLock); but I don't think subclassing would have been an issue anyway. Regards Antoine.