]> granicus.if.org Git - python/commitdiff
_reconstructor(): there's no need for tricks with assignment to
authorGuido van Rossum <guido@python.org>
Tue, 25 Sep 2001 19:46:05 +0000 (19:46 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 25 Sep 2001 19:46:05 +0000 (19:46 +0000)
__class__.  The __new__ protocol is up to this.  (Thanks to Tim for
pointing this out.)

Lib/copy_reg.py

index e93c2a372c2fc1b01877d51afe992c01254096f3..eb028640fbc6d4660cbb220b7d3abd5097a70e48 100644 (file)
@@ -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