Remove '(' in column 0 of doc strings.

Add dependency on dict.copy().
This commit is contained in:
Guido van Rossum 1997-05-28 19:31:14 +00:00
parent e3f5b9c8d1
commit f7cea10f80

View file

@ -25,19 +25,19 @@ class instances).
Two problems often exist with deep copy operations that don't exist Two problems often exist with deep copy operations that don't exist
with shallow copy operations: with shallow copy operations:
(a) recursive objects (compound objects that, directly or indirectly, a) recursive objects (compound objects that, directly or indirectly,
contain a reference to themselves) may cause a recursive loop contain a reference to themselves) may cause a recursive loop
(b) because deep copy copies *everything* it may copy too much, e.g. b) because deep copy copies *everything* it may copy too much, e.g.
administrative data structures that should be shared even between administrative data structures that should be shared even between
copies copies
Python's deep copy operation avoids these problems by: Python's deep copy operation avoids these problems by:
(a) keeping a table of objects already copied during the current a) keeping a table of objects already copied during the current
copying pass copying pass
(b) letting user-defined classes override the copying operation or the b) letting user-defined classes override the copying operation or the
set of components copied set of components copied
This version does not copy types like module, class, function, method, This version does not copy types like module, class, function, method,
@ -97,10 +97,7 @@ def _copy_tuple(x):
d[types.TupleType] = _copy_tuple d[types.TupleType] = _copy_tuple
def _copy_dict(x): def _copy_dict(x):
y = {} return x.copy()
for key in x.keys():
y[key] = x[key]
return y
d[types.DictionaryType] = _copy_dict d[types.DictionaryType] = _copy_dict
def _copy_inst(x): def _copy_inst(x):
@ -238,7 +235,12 @@ def _test():
def __init__(self, arg=None): def __init__(self, arg=None):
self.a = 1 self.a = 1
self.arg = arg self.arg = arg
self.fp = open('copy.py') if __name__ == '__main__':
import sys
file = sys.argv[0]
else:
file = __file__
self.fp = open(file)
self.fp.close() self.fp.close()
def __getstate__(self): def __getstate__(self):
return {'a': self.a, 'arg': self.arg} return {'a': self.a, 'arg': self.arg}