Add getstate and setstate implementation to concrete set classes.

This commit is contained in:
Jeremy Hylton 2002-11-13 19:34:26 +00:00
parent 66abcee948
commit cd58b8f532
2 changed files with 21 additions and 1 deletions

View file

@ -366,6 +366,11 @@ class ImmutableSet(BaseSet):
self._hashcode = self._compute_hash()
return self._hashcode
def __getstate__(self):
return self._data, self._hashcode
def __setstate__(self, state):
self._data, self._hashcode = state
class Set(BaseSet):
""" Mutable set class."""
@ -380,6 +385,13 @@ class Set(BaseSet):
if iterable is not None:
self._update(iterable)
def __getstate__(self):
# getstate's results are ignored if it is not
return self._data,
def __setstate__(self, data):
self._data, = data
def __hash__(self):
"""A Set cannot be hashed."""
# We inherit object.__hash__, so we must deny this explicitly