diff options
Diffstat (limited to 'Lib/copy.py')
-rw-r--r-- | Lib/copy.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Lib/copy.py b/Lib/copy.py index d5a7153..fa75daa 100644 --- a/Lib/copy.py +++ b/Lib/copy.py @@ -100,12 +100,15 @@ _copy_dispatch = d = {} def _copy_immutable(x): return x for t in (type(None), int, float, bool, str, tuple, - frozenset, type, range, types.ClassType, + frozenset, type, range, types.BuiltinFunctionType, types.FunctionType): d[t] = _copy_immutable -for name in ("ComplexType", "UnicodeType", "CodeType"): - t = getattr(types, name, None) +t = getattr(types, "CodeType", None) +if t is not None: + d[t] = _copy_immutable +for name in ("complex", "unicode"): + t = globals()['__builtins__'].get(name) if t is not None: d[t] = _copy_immutable @@ -192,7 +195,6 @@ except AttributeError: pass d[type] = _deepcopy_atomic d[range] = _deepcopy_atomic -d[types.ClassType] = _deepcopy_atomic d[types.BuiltinFunctionType] = _deepcopy_atomic d[types.FunctionType] = _deepcopy_atomic |