From: Tavis R. <ta...@re...> - 2002-08-22 20:02:19
|
On August 22, 2002 11:44 am, Ernesto Revilla wrote: > ----- Original Message ----- > From: "Tavis Rudd" <ta...@re...> > > from threading import Lock > > class Counter: > > _count =3D 1 > > __sharedState =3D {'_lock': Lock()} > > def __init__(self): > > self.__dict__ =3D self.__sharedState > > For my curiosity. Why do you do this??? The Counter demo class was a bit contrived, but the idea is to implement = a=20 'borg' class in which all instances share the same _count. That way you = can=20 just: from SomeModule import Counter c =3D Counter() and=20 c.increment() # to increment the global count. A more realistic application of this design pattern would be something li= ke a=20 LogManager class (see http://www.red-dove.com/python_logging.html) or an=20 ImportManager class (see http://www.mcmillan-inc.com/installer_dnld.html)= =2E See http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66531 for mor= e on=20 borg classes. Tavis |