On Oct 5, 11:07 pm, Carl Banks <pavlovevide...@gmail.com> wrote: > On Oct 5, 7:56 pm, menomnon <p...@well.com> wrote: > > Does python have a ‘once’ (per class) feature? > > > ‘Once’, as I’ve know it is in Eiffel. May be in Java don’t. > > > The first time you instantiate a given class into an object it > > constructs, say, a dictionary containing static information. In my > > case static is information that may change once a week at the most and > > there’s no need to be refreshing this data during a single running of > > the program (currently maybe 30 minutes). > > > So you instantiate the same class into a second object, but instead of > > going to the databases again and recreating the same dictionary a > > second time, you get a pointer or reference to the one already created > > in the first object – copies into the second object that is. And the > > dictionary, no matter how many instances of the object you make, is > > always the same one from the first object. > > > So, as we put it, once per class and not object. > > > Saves on both time and space. > > Sounds like Borg Pattern: > > http://code.activestate.com/recipes/66531/
BTW, for your problem you'd probably want to add some kind of conditional initialization code: class Borg(object): _shared_state = { 'initialized' : False } def __init__(self): self.__dict__ = self._shared_state if self.initialized: return # perform initialization here self.initialized = True Carl Banks -- http://mail.python.org/mailman/listinfo/python-list