
2009/12/15 Ram Rachum <cool-rr@cool-rr.com>:
Vitor Bosshard <algorias@...> writes:
Deepcopy is a very simple operation conceptually, there's no need to make it more complicated. How about implementing __deepcopy__ in your world state objects? Specify attributes that don't need copying. You can even use the Persistent class to signal that. Something like this (untested!):
def __deepcopy__(self): new = self.__class__() for k,v in self.__dict__.iteritems(): setattr(new, k, v if isinstance(v, Persistent) else deepcopy(v)) return new
Vitor
And what happens when State refers to another object which refers to a Persistent?
Then that object would need to implement the same method, perhaps by inheriting form a common base. The point is that it can be done in a straightforward manner without needing to change the stdlib. Vitor