diff --git a/Lib/collections.py b/Lib/collections.py index 28a2abf44f8..c889ab37f33 100644 --- a/Lib/collections.py +++ b/Lib/collections.py @@ -112,16 +112,6 @@ def __reversed__(self, PREV=0, KEY=2): yield curr[KEY] curr = curr[PREV] - def __reduce__(self): - 'Return state information for pickling' - items = [[k, self[k]] for k in self] - inst_dict = vars(self).copy() - for k in vars(OrderedDict()): - inst_dict.pop(k, None) - if inst_dict: - return (self.__class__, (items,), inst_dict) - return self.__class__, (items,) - def clear(self): 'od.clear() -> None. Remove all items from od.' try: @@ -190,6 +180,16 @@ def __repr__(self): return '%s()' % (self.__class__.__name__,) return '%s(%r)' % (self.__class__.__name__, self.items()) + def __reduce__(self): + 'Return state information for pickling' + items = [[k, self[k]] for k in self] + inst_dict = vars(self).copy() + for k in vars(OrderedDict()): + inst_dict.pop(k, None) + if inst_dict: + return (self.__class__, (items,), inst_dict) + return self.__class__, (items,) + def copy(self): 'od.copy() -> a shallow copy of od' return self.__class__(self)