I don't quite understand why this happens. Why doesn't b have its own version of r? If r was just an int instead of a dict, then it would.
>>> class foo: ... r = {} ... def setn(self, n): ... self.r["f"] = n ... >>> a = foo() >>> a.setn(4) >>> >>> b = foo() >>> b.r {'f': 4} thanks, billy -- http://mail.python.org/mailman/listinfo/python-list