In the threading module there are several code bits following this convention:<br><br>###<br>def Class(*args, **kwargs):<br>    return _Class(*args, **kwargs)<br><br>class _Class(...<br>###<br><br>This is true for Event, RLock, and others.<br>
<br>Why do this? It seems to violate the rule of least astonishment (isinstance(Event(), Event) raises an exception). I assume there must be some trade-off that the designer intended to achieve. So, what is that trade-off and when should I follow this in my code?<br>
<br>--<br clear="all">Zachary Burns<br>(407)590-4814<br>Aim - Zac256FL<br>Production Engineer<br>Zindagi Games<br>