Is it possible to define a class in such a way, that if twice an object is made with the same initialization parameters, the same object is returned in both cases?
More specifically, suppose I have the following program: class myObj(object): def __init__(self,a): self._a = a self._seen = 0 def touch(self): self._seen += 1 def count(self): return self._seen x = myObj("a") y = myObj("a") z = myObj("b") x.touch() After this, x._seen will return 1, but y._seen and z._seenwill return 0. I would like the definition of the myObj class to be such that after these definitions x and y refer to the same object, but z to a different one. If there is not such possibility, does anyone have a better or more elegant workaround than the one I am using, which is: class myObj(object): def __init__(self,a): self._a = a self._seen = 0 def touch(self): self._seen += 1 def count(self): return self._seen def obj(a): try: return objects[a] except KeyError: objects[a] = myObj(a) return objects[a] objects = {} x = obj("a") y = obj("a") z = obj("b") x.touch() -- Andre Engels, [EMAIL PROTECTED] ICQ: 6260644 -- Skype: a_engels _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor