From 698acf98fdafd14b1b5ad380e3c56b31ab33a229 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 25 Sep 2001 19:46:05 +0000 Subject: _reconstructor(): there's no need for tricks with assignment to __class__. The __new__ protocol is up to this. (Thanks to Tim for pointing this out.) --- Lib/copy_reg.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/Lib/copy_reg.py b/Lib/copy_reg.py index e93c2a3..eb02864 100644 --- a/Lib/copy_reg.py +++ b/Lib/copy_reg.py @@ -36,16 +36,9 @@ pickle(type(1j), pickle_complex, complex) # Support for picking new-style objects -_dummy_classes = {} - def _reconstructor(cls, base, state): - dummy = _dummy_classes.get(base) - if dummy is None: - class dummy(base): pass - _dummy_classes[base] = dummy - obj = dummy(state) - obj._foo = 1; del obj._foo # hack to create __dict__ - obj.__class__ = cls + obj = base.__new__(cls, state) + base.__init__(obj, state) return obj _reconstructor.__safe_for_unpickling__ = 1 -- cgit v0.12