Kaydet (Commit) 1fc0d2b3 authored tarafından Antoine Pitrou's avatar Antoine Pitrou

Merged revisions 76571 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76571 | antoine.pitrou | 2009-11-28 16:55:58 +0100 (sam., 28 nov. 2009) | 3 lines

  Issue #1515: Enable use of deepcopy() with instance methods.  Patch by Robert Collins.
........
üst 38478d86
......@@ -238,6 +238,10 @@ d[dict] = _deepcopy_dict
if PyStringMap is not None:
d[PyStringMap] = _deepcopy_dict
def _deepcopy_method(x, memo): # Copy instance methods
return type(x)(x.__func__, deepcopy(x.__self__, memo))
_deepcopy_dispatch[types.MethodType] = _deepcopy_method
def _keep_alive(x, memo):
"""Keeps a reference to the object x in the memo.
......
......@@ -677,6 +677,17 @@ class TestCopy(unittest.TestCase):
del d
self.assertEqual(len(v), 1)
def test_deepcopy_bound_method(self):
class Foo(object):
def m(self):
pass
f = Foo()
f.b = f.m
g = copy.deepcopy(f)
self.assertEqual(g.m, g.b)
self.assertTrue(g.b.__self__ is g)
g.b()
def global_foo(x, y): return x+y
......
......@@ -144,6 +144,7 @@ Josh Cogliati
Dave Cole
Benjamin Collar
Jeffery Collins
Robert Collins
Paul Colomiets
Matt Conway
David M. Cooke
......
......@@ -140,6 +140,9 @@ C-API
Library
-------
- Issue #1515: Enable use of deepcopy() with instance methods. Patch by
Robert Collins.
- Issue #7403: logging: Fixed possible race condition in lock creation.
- Issue #6845: Add restart support for binary upload in ftplib. The
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment