これらのコードを python 3.2.2 IDLE で実行しました。
from copy import deepcopy
deepcopy(globals())
そして、私はエラーメッセージを受け取ります:
Traceback (most recent call last):
File "H:\ \python\copy deepcopy.py", line 27, in <module>
deepcopy(globals())
File "D:\Program Files\Python32\lib\copy.py", line 147, in deepcopy
y = copier(x, memo)
File "D:\Program Files\Python32\lib\copy.py", line 236, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "D:\Program Files\Python32\lib\copy.py", line 174, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "D:\Program Files\Python32\lib\copy.py", line 290, in _reconstruct
state = deepcopy(state, memo)
File "D:\Program Files\Python32\lib\copy.py", line 147, in deepcopy
y = copier(x, memo)
File "D:\Program Files\Python32\lib\copy.py", line 236, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "D:\Program Files\Python32\lib\copy.py", line 174, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "D:\Program Files\Python32\lib\copy.py", line 285, in _reconstruct
y = callable(*args)
File "D:\Program Files\Python32\lib\copyreg.py", line 88, in __newobj__
return cls.__new__(cls, *args)
TypeError: object.__new__(NotImplementedType) is not safe, use NotImplementedType.__new__()
では、deepcopy() から globals() を実行できない理由がわかりません。
deepcopy() は、実行時にグローバル dict を変更するためですか?