From: Guido van Rossum Date: Fri, 7 Feb 2003 17:53:23 +0000 (+0000) Subject: Somehow, copy() of a classic class object was handled X-Git-Tag: v2.3c1~1970 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1dca482dbdd42fc9a81cab1ae2f04471511c338d;p=python Somehow, copy() of a classic class object was handled atomically, but deepcopy() didn't support this at all. I don't see any reason for this, so I'm adding ClassType to the set of types that are deep-copied atomically. --- diff --git a/Lib/copy.py b/Lib/copy.py index c1c0ec0cbd..b57fa89710 100644 --- a/Lib/copy.py +++ b/Lib/copy.py @@ -220,6 +220,7 @@ except AttributeError: pass d[types.TypeType] = _deepcopy_atomic d[types.XRangeType] = _deepcopy_atomic +d[types.ClassType] = _deepcopy_atomic def _deepcopy_list(x, memo): y = [] diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py index 35ce46a523..6a31f75f65 100644 --- a/Lib/test/test_copy.py +++ b/Lib/test/test_copy.py @@ -239,7 +239,7 @@ class TestCopy(unittest.TestCase): pass tests = [None, 42, 2L**100, 3.14, True, False, 1j, "hello", u"hello\u1234", f.func_code, - NewStyle, xrange(10)] + NewStyle, xrange(10), Classic] for x in tests: self.assert_(copy.deepcopy(x) is x, `x`)